作用
harness 层默认为 agent 提供一套“足够走完一个闭环”的内置工具:读写文件、检索记忆与会话、委派子 agent、可选走 shell。不需手动注册,HarnessAgent.build() 与 SubagentsHook 会一起装好。
注册路径
- 直接 register:
FilesystemTool/MemorySearchTool/MemoryGetTool/SessionSearchTool必装;ShellExecuteTool仅在backend instanceof AbstractSandboxFilesystem时装。 - 间接 register:
AgentSpawnTool与TaskTool是SubagentsHook.tools()返回的,仅在非 leaf 且配了model时出现;在 session mode 下agent_*会被sessions_*替换。
文件系统·FilesystemTool
包装 AbstractFilesystem;路径是后端本地路径。
记忆·MemorySearchTool / MemoryGetTool
参数名是驼峰(startLine/endLine),与 filesystem 的 snake_case 不一致。
会话·SessionSearchTool
参数名都是驼峰,且session_search返回结果是扫全部agents/<agentId>/sessions/*.jsonl后的“首次命中 10 条”,不是按相关性排序。
子 Agent·AgentSpawnTool
sessions_spawn / sessions_send / sessions_list。
后台任务·TaskTool
Shell·ShellExecuteTool(条件性装)
仅在后端是 AbstractSandboxFilesystem(包含 LocalFilesystemWithShell)时才被注册。如果你用的是纯 LocalFilesystem 或 RemoteFilesystem,子工具不出现。
注意:@Tool 未显式设name,默认取方法名,所以 LLM 看到的工具名是execute。如果后续统一为shell_execute是个小重构,参见 roadmap。