使用 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 的詳細信息。