AI News HubLIVE
站内改写2 分钟阅读

使用 Agent SDK 构建你自己的代理工具(Harness)| OpenRouter

OpenRouter 推出了两个用于构建代理工具(harness)的技能:create-agent-tui(终端 UI)和 create-headless-agent(无头代理)。两者都能生成完整的 TypeScript 项目,利用 Agent SDK 提供可定制功能,并可与任何 OpenRouter 模型集成。这些技能提供了精细控制、最小化部署和教育价值。主要特性包括交互式清单、可定制的 UI、会话持久化、安全重试和结构化输出。

OpenRouter 近日推出了两个新的技能(skill),用于帮助开发者构建自定义的代理工具(harness)。这两个技能分别是 create-agent-tui 和 create-headless-agent。前者用于生成带有完整终端用户界面的项目,而后者则生成无界面的代理项目,适用于 CLI 工具、API 服务器、队列工作流等场景。

底层技术方面,这两个技能都基于 OpenRouter 最新发布的 Agent SDK。该 SDK 提供了一个核心的 callModel 函数,能够处理整个代理循环,包括模型调用、工具执行、多轮交互、流式输出和成本追踪。开发者无需编写复杂的循环管理代码,只需专注于应用特定的部分,如工具定义和配置。

使用方式非常简单:首先获取 OpenRouter API 密钥,然后通过命令行安装对应的技能,例如 gh skill install OpenRouterTeam/skills create-agent-tui。接下来,告知你的编程代理(如 Claude Code、Codex 等)你想要构建什么样的助手,技能便会生成一个完整的 TypeScript 项目。项目生成后,运行 pnpm install && pnpm start(对于 TUI 版本)即可启动。

在自定义方面,create-agent-tui 提供了一个交互式清单,用户可以选择所需的服务器工具(如网络搜索、日期时间)、本地工具(如文件读写、grep、shell 等)、Harness 模块(如会话持久化、上下文压缩、工具审批门)以及斜杠命令。终端 UI 的各个方面都可以定制,包括工具显示样式、输入样式、加载动画和自定义 ASCII 横幅。用户也可以直接描述需求,技能会生成相应的自定义样式。

生成的项目完全归用户所有,可以自由修改。例如添加特定领域的工具、设置不同的入口点(技能包含了 HTTP API 服务器的模板)、添加上下文压缩以应对长对话,或者精简到最基本的形式。

无头代理技能(create-headless-agent)采用了相同的架构,但完全去掉了 TUI 层。生成的 CLI 工具通过 --prompt 参数或管道接受输入,并输出纯文本、NDJSON 事件流或仅返回退出码。该技能有两个特别适合生产环境的特性:一是安全重试,在未执行任何工具调用时,遇到 429 或 5xx 错误会使用指数退避重试,但一旦执行了可变操作(如文件写入),重试会被跳过以避免副作用;二是结构化输出,通过传入 JSON Schema 文件,CLI 会验证代理的最终响应,若验证失败则退出并返回代码 2。

OpenRouter 表示,这些技能的设计借鉴了 pi-mono、Claude Code 和 Codex CLI 等生产级代理架构的最佳实践。开发者可以通过官方文档和指南深入了解 callModel API 的详细信息。