diff --git a/README.md b/README.md index 70a738e..46466ad 100644 --- a/README.md +++ b/README.md @@ -139,13 +139,13 @@ no SDK, no protocol buffer — `echo`, `cat`, `tail`, and `rm` are the API. echo "name=worker" > /mnt/ollie/session/new # Submit a prompt -echo "fix the bug in main.go" > /mnt/ollie/session/worker/agent/0/prompt +echo "fix the bug in main.go" > /mnt/ollie/session/worker/agent/{aname}/prompt # Stream the response -tail -f /mnt/ollie/session/worker/agent/0/chat +tail -f /mnt/ollie/session/worker/agent/{aname}/chat # Check state -cat /mnt/ollie/session/worker/agent/0/state +cat /mnt/ollie/session/worker/agent/{aname}/state # One-shot generation (no session needed) exec 3<>/mnt/ollie/generate; echo 'explain monads' >&3; cat <&3; exec 3>&- diff --git a/data/agents/README.md b/data/agents/README.md index 7eb5a0a..8e436d5 100644 --- a/data/agents/README.md +++ b/data/agents/README.md @@ -16,7 +16,7 @@ The system prompt is assembled from the `prompt` array in the agent config. Each The base system prompt is embedded in the binary and automatically prepended. -The fully assembled system prompt is visible at `session//agent/0/systemprompt`. +The fully assembled system prompt is visible at `session/{id}/agent/{aname}/systemprompt`. ## Hooks diff --git a/doc/usage.md b/doc/usage.md index e9ea1e7..95f1195 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -193,7 +193,7 @@ Parameters are set in the agent config JSON and can be overridden at runtime by writing `key=value` to the agent config. Runtime overrides take precedence: ```sh -echo "temperature=0.3" | ollie-9p write session/mysession/agent/0/cfg +echo "temperature=0.3" | ollie-9p write session/mysession/agent/{aname}/cfg ``` | Key | Type | Description | @@ -272,7 +272,7 @@ them via the filesystem: ```sh printf 'name=writer\ncwd=%s\n' "$PWD" | o write session/new printf 'name=reviewer\ncwd=%s\n' "$PWD" | o write session/new -o write prompt "Draft a design doc" # with session=writer agent=0 +o write prompt "Draft a design doc" # with session=writer agent={aname} o tail # read writer's response ``` @@ -306,16 +306,16 @@ printf 'name=tester\nagent=tester\ncwd=%s\n' "$cwd" | 9p write session/new send() { sid=$1; shift - exec 3< session/$sid/agent/0/statewait - printf '%s' "$*" > session/$sid/agent/0/prompt + exec 3< session/$sid/agent/{aname}/statewait + printf '%s' "$*" > session/$sid/agent/{aname}/prompt while true; do read -r _ <&3 && { exec 3<&-; break; } exec 3<&- - [ "$(cat session/$sid/agent/0/state)" != "idle" ] && break - exec 3< session/$sid/agent/0/statewait + [ "$(cat session/$sid/agent/{aname}/state)" != "idle" ] && break + exec 3< session/$sid/agent/{aname}/statewait done - until [ "$(cat session/$sid/agent/0/state)" = "idle" ]; do sleep 0.5; done - tail -c +$(($(cat session/$sid/agent/0/offset) + 1)) session/$sid/agent/0/chat + until [ "$(cat session/$sid/agent/{aname}/state)" = "idle" ]; do sleep 0.5; done + tail -c +$(($(cat session/$sid/agent/{aname}/offset) + 1)) session/$sid/agent/{aname}/chat } reply=$(send developer "Implement a function that parses a JSON config file.") @@ -382,19 +382,19 @@ ollie-9p mount tcp!server:9564 ~/mnt/ollie echo "name=worker" > session/new # Submit a prompt -echo "fix the bug in main.go" > session/worker/agent/0/prompt +echo "fix the bug in main.go" > session/worker/agent/{aname}/prompt # Stream the response -cat session/worker/agent/0/chat +cat session/worker/agent/{aname}/chat # Check state -cat session/worker/agent/0/state +cat session/worker/agent/{aname}/state # Block until state changes -cat session/worker/agent/0/statewait +cat session/worker/agent/{aname}/statewait # Read offset (byte position after user prompt) -cat session/worker/agent/0/offset +cat session/worker/agent/{aname}/offset ``` ### Network transparency @@ -404,7 +404,7 @@ session, tool, and config value is accessible as if local: ```sh # From another machine: -9p -a 'tcp!server:5640' read session/worker/agent/0/state +9p -a 'tcp!server:5640' read session/worker/agent/{aname}/state ``` No SSH tunneling, no port forwarding, no API gateway.