]> git.giacomolli.uk - onechat/blobdiff - README.rst
Give the root tools to start and message children
[onechat] / README.rst
index b60f984379791785347d2cdfea98ad15da77dc0f..556ab46e51bb0e2957c6eb230324cb61ed97c933 100644 (file)
@@ -139,12 +139,17 @@ propose a change to the file, and it makes the change only after the
 user agrees.
 
 A permanent child agent lives in ``agent/children/NAME/`` with the same
 user agrees.
 
 A permanent child agent lives in ``agent/children/NAME/`` with the same
-files as the root. Create its directory and ``config.json`` by hand
-before startup. Use the root config fields with a separate random ID,
-set ``name`` to ``NAME``, and add ``parent`` with the root name and
-``responsibility`` with the child's area. The daemon opens all children
-at startup. A missing or invalid child config stops startup. Only one
-level of children is supported.
+files as the root. The root's ``agent_create(name, responsibility)``
+tool creates and starts it with the root's model, effort, and working
+directory, and a separate random ID. A name describes the area, such as
+``House`` or ``Calendar``. It is one word of 2 to 32 ASCII letters,
+starts with a capital letter, and cannot name the root, an existing
+child, or a subagent. The daemon opens all children at startup. A
+missing or invalid child config stops startup. Only one level of
+children is supported. Remove a child by hand while the daemon is
+stopped. The root's turn state lists each child and its responsibility.
+The root passes area messages from mixed chats with sender, date, and
+words, and asks the user before it sends a child's draft to WhatsApp.
 
 Each child has its own memory, model client, usage file, subagents,
 schedules, and turn loop. Its prompt limits work to its area, asks for
 
 Each child has its own memory, model client, usage file, subagents,
 schedules, and turn loop. Its prompt limits work to its area, asks for
@@ -162,8 +167,10 @@ next turn. ``agent/messages.json``, with mode 0600, keeps messages until
 their recipient finishes its turn. A daemon stop preserves queued
 messages and reports for the next start without a second log entry. An
 interrupted turn can repeat its model calls and tools after restart.
 their recipient finishes its turn. A daemon stop preserves queued
 messages and reports for the next start without a second log entry. An
 interrupted turn can repeat its model calls and tools after restart.
-Backups lock this queue with the agent files. No tools send messages
-between parent and child agents yet.
+Backups lock this queue with the agent files, including children made
+during the daemon run. The root uses ``tell`` for both children and
+subagents. ``zoom("Name")`` gives a child's view or a subagent's whole
+log. ``spawn`` starts short-lived subagents, not permanent children.
 
 **************
  User service
 
 **************
  User service
@@ -572,7 +579,8 @@ such as "remind me tomorrow at 9" or "every weekday at 8, tell me what
 my WhatsApp groups talked about". A schedule has a text, the task for
 the agent, and either one time or a cron expression. The agent also
 lists the schedules with their next times, and removes one when the user
 my WhatsApp groups talked about". A schedule has a text, the task for
 the agent, and either one time or a cron expression. The agent also
 lists the schedules with their next times, and removes one when the user
-asks. Only the agent has the schedule tools, not its subagents.
+asks. The root and its children have the schedule tools, not their
+subagents. Each schedule records its owner and wakes only that agent.
 
 A cron expression has five fields: minute, hour, day of month, month,
 and day of week, where 0 and 7 are Sunday. A field is a comma list of
 
 A cron expression has five fields: minute, hour, day of month, month,
 and day of week, where 0 and 7 are Sunday. A field is a comma list of