Skip to content

工具系统深度剖析:AI Agent 工具链实现 #17695

@ponyfly6

Description

@ponyfly6

Deep dive into OpenCode's tool system architecture

OpenCode 实现了 45+ 个工具(packages/opencode/src/tool/),包括 bash、edit、read、write、grep、glob 等。

探索方向

  • 工具注册和发现机制(tool/registry.ts
  • 工具的权限控制和沙箱隔离
  • 批量工具执行(batch.ts)的实现
  • LSP 集成工具(lsp.ts)如何与语言服务器通信
  • 工具描述文件(.txt 文件)如何生成 AI 提示词
  • 工具的 schema 定义和验证

价值

了解如何构建可扩展的 AI Agent 工具系统

相关文件

  • packages/opencode/src/tool/ (45+ tool implementations)
  • packages/opencode/src/tool/registry.ts
  • packages/opencode/src/tool/batch.ts
  • packages/opencode/src/tool/lsp.ts
  • packages/opencode/src/tool/schema.ts

工具列表示例

apply_patch, bash, batch, codesearch, edit, glob, grep, 
ls, lsp, multiedit, plan, question, read, skill, task, 
todo, webfetch, websearch, write, 等

Metadata

Metadata

Assignees

Labels

docsneeds:complianceThis means the issue will auto-close after 2 hours.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions