Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ iii v0.11.4 exposes `state::update` / `stream::update` with `UpdateOp::set`, `Up

These are **declarative config**, not workers:

- `hands/<name>/HAND.toml` — agent persona (system prompt, allowed tools, schedule), consumed by the `hand-runner` worker.
- `hands/<name>/HAND.toml` — agent persona (system prompt, allowed function ids, schedule), consumed by the `hand-runner` worker.
- `integrations/<name>.toml` — MCP server connection details (transport, command, OAuth scopes), consumed by the `mcp-client` worker.
- `agents/<name>/...` — markdown templates for spawning agent personas.
- `workflows/<name>.yaml` — pre-defined workflow definitions for the `workflow` worker.
Expand Down
2 changes: 1 addition & 1 deletion agents/ai-engineer/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/analyst/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/app-store-optimizer/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/architect/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/assistant/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/brand-guardian/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/code-reviewer/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/coder/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/content-creator/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/customer-support/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/data-scientist/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/debugger/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/devops-lead/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/doc-writer/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/email-assistant/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/evidence-collector/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/feedback-synthesizer/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/growth-hacker/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/health-tracker/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/hello-world/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/home-automation/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/image-prompt-engineer/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/legal-assistant/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/meeting-assistant/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/mobile-builder/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/ops/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/orchestrator/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/performance-benchmarker/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::shell_exec", "tool::file_read", "tool::file_write", "tool::web_fetch", "tool::calculate", "tool::code_interpret"]
functions = ["fn::shell_exec", "fn::file_read", "fn::file_write", "fn::web_fetch", "fn::calculate", "fn::code_interpret"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check whether fn::file_read, fn::file_write, fn::web_fetch are registered anywhere
rg -n '"fn::file_read"\|"fn::file_write"\|"fn::web_fetch"' --type rust --type toml
# Also check with register_function calls
rg -n -B2 -A2 'register_function' --type rust | grep -E 'fn::(file_read|file_write|web_fetch)'

Repository: iii-experimental/agentos

Length of output: 50


🏁 Script executed:

# Search for WASM_ALLOWED_FUNCTIONS mentioned in PR description
rg -n 'WASM_ALLOWED_FUNCTIONS' --type rust --type toml -B 5 -A 5

Repository: iii-experimental/agentos

Length of output: 8885


🏁 Script executed:

# Search for function registration/dispatch mechanism
rg -n 'register|dispatch|handler' --type rust | head -50

Repository: iii-experimental/agentos

Length of output: 3995


🏁 Script executed:

# Check if file_read, file_write, web_fetch exist anywhere without fn:: prefix
rg -n -i '(file_read|file_write|web_fetch)' --type rust --type toml | grep -v 'fn::' | head -30

Repository: iii-experimental/agentos

Length of output: 768


🏁 Script executed:

# Look for the structure of the repository to understand how it's organized
fd -t f -e rs -e toml | grep -E '(worker|function|register|handler)' | head -20

Repository: iii-experimental/agentos

Length of output: 651


🏁 Script executed:

# Check what functions wasm-sandbox registers
sed -n '143,190p' workers/wasm-sandbox/src/main.rs

Repository: iii-experimental/agentos

Length of output: 1957


🏁 Script executed:

# Search for fn:: prefix usage in the codebase
rg -n '"fn::' --type rust --type toml

Repository: iii-experimental/agentos

Length of output: 11299


🏁 Script executed:

# Check the agent.toml file more broadly
cat agents/performance-benchmarker/agent.toml

Repository: iii-experimental/agentos

Length of output: 2495


🏁 Script executed:

# Search for where fn::shell_exec, fn::file_read, fn::file_write, fn::web_fetch are registered
rg -n 'register_function.*"(fn::shell_exec|fn::file_read|fn::file_write|fn::web_fetch)"' --type rust -B 2 -A 5

Repository: iii-experimental/agentos

Length of output: 50


🏁 Script executed:

# Check approval-tiers which seems to classify these functions
sed -n '1,200p' workers/approval-tiers/src/main.rs | head -100

Repository: iii-experimental/agentos

Length of output: 2840


🏁 Script executed:

# Search for fn::calculate and fn::code_interpret
rg -n '"fn::calculate"\|"fn::code_interpret"' --type rust --type toml

Repository: iii-experimental/agentos

Length of output: 50


🏁 Script executed:

# Check if there's any central function registry or dispatcher
rg -n 'function.*dispatch\|invoke.*function\|call.*function' workers/agent-core/src/main.rs -A 3 -B 3 | head -50

Repository: iii-experimental/agentos

Length of output: 50


🏁 Script executed:

# Look for fn:: pattern handling in agent-core (the core agent executor)
rg -n 'fn::' workers/agent-core/src/main.rs -B 2 -A 2

Repository: iii-experimental/agentos

Length of output: 1349


🏁 Script executed:

# Search for documentation about fn:: functions
fd -e md -e txt -e rst | xargs grep -l "fn::" 2>/dev/null | head -5

Repository: iii-experimental/agentos

Length of output: 50


🏁 Script executed:

# Check README files for architecture explanation
find . -maxdepth 2 -name "README*" -o -name "ARCHITECTURE*" | xargs cat 2>/dev/null | head -100

Repository: iii-experimental/agentos

Length of output: 5096


🏁 Script executed:

# Look at how tool calls are dispatched from agent-core
rg -n 'tool_call|ToolCall|invoke' workers/agent-core/src/main.rs -B 3 -A 3 | head -80

Repository: iii-experimental/agentos

Length of output: 2533


🏁 Script executed:

# Check if there's a tool registry or handler map
rg -n 'HashMap.*tool\|tool.*map\|handler' workers/agent-core/src/main.rs | head -20

Repository: iii-experimental/agentos

Length of output: 50


🏁 Script executed:

# Final confirmation: search for any registration of these specific functions
rg -n 'register_function.*"(shell_exec|file_read|file_write|web_fetch|calculate|code_interpret)"' --type rust

Repository: iii-experimental/agentos

Length of output: 50


Remove unimplemented function declarations or register the handlers.

The agent declares six capabilities (fn::shell_exec, fn::file_read, fn::file_write, fn::web_fetch, fn::calculate, fn::code_interpret) that have no registered implementations in the codebase. When agent-core attempts to dispatch a tool call to any of these, the iii.trigger() dispatch will fail because no worker has registered a function with that ID. Either remove these from the capabilities list or implement the corresponding worker functions.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@agents/performance-benchmarker/agent.toml` at line 12, The functions list in
agent.toml declares unimplemented capabilities ("fn::shell_exec",
"fn::file_read", "fn::file_write", "fn::web_fetch", "fn::calculate",
"fn::code_interpret") which will cause iii.trigger() dispatch failures; either
remove these IDs from the functions array in
agents/performance-benchmarker/agent.toml or implement and register
corresponding worker handlers that call iii.register or the project's worker
registration API under those exact IDs (e.g., register handlers for
"fn::shell_exec", "fn::file_read", etc.) so agent-core can successfully dispatch
tool calls.

memory_scopes = ["self.*", "shared.*"]
network_hosts = ["localhost", "*.staging.*", "*.perf.*", "*.test.*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/personal-finance/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/planner/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/rapid-prototyper/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/reality-checker/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/recruiter/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/researcher/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/sales-assistant/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/security-auditor/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/social-media/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/sprint-prioritizer/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/test-engineer/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/translator/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/travel-planner/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/trend-researcher/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
2 changes: 1 addition & 1 deletion agents/tutor/agent.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ model = "claude-sonnet-4-6"
max_tokens = 4096

[agent.capabilities]
tools = ["tool::*"]
functions = ["*"]
memory_scopes = ["self.*", "shared.*"]
network_hosts = ["*"]

Expand Down
Loading
Loading