内容
# agentproto/ts
**让你的编码代理在无需监控的情况下工作。**
agentproto 在后台运行 Claude Code、Codex、Hermes、opencode、Mastra 等各种编码代理,将它们集中显示,并通过你的测试或审查模型检查每个代理的工作成果,然后再进行提交。不再需要盯着终端窗口。
- **统一运行方式。** 使用相同的命令启动、消息、监控和停止任何代理。目前已有九种适配器。
- **工作成果经过检查后才会提交。** 附加检查 - 你的测试或更强大的模型审查变更 - 并在代理完成时运行。提交等待检查和你的确认,即使你关闭了笔记本电脑。
- **保留现有的工具。** 它驱动你已经使用的代理 CLI - 不需要重写。代理甚至可以运行和检查其他代理。
- **以及一个完整的工具箱。** 以文件形式编写工具并提供服务,导入任何 MCP 服务器并将其交给任何代理,打开隧道,驱动浏览器,安排工作流和 cron 运行。
该守护进程是更大功能的旗舰界面:**agentproto 是一个开放的代理框架** - [AIP 规格](https://agentproto.sh/docs) 定义了每个代理组件(工具、技能、代理、知识、工作流、策略)为一个具有声明合同的普通文件,而该存储库是 TypeScript 运行时,它加载、运行并将它们投射到任何主机(CLI、HTTP、MCP、Mastra、Vercel AI SDK)。具有合同的文件使得任何运行时都可以加载它们 - 并让代理读取、写入和改进自己的组件。
> **状态:0.10.0-alpha。** API 正在稳定;预计在 alpha 版本之间会有轻微的破坏性更改。
## 快速开始
```bash
npm i -g @agentproto/cli
agentproto install claude-code # 自动安装适配器包
agentproto serve # 启动守护进程(前台)
agentproto sessions start claude-code --cwd . --prompt "重构支付模块"
agentproto sessions --watch
```
然后进行权限控制:为任何会话的转折点附加策略,并将提交放在人类确认后面。有关完整的介绍,请参阅 [agentproto.sh](https://agentproto.sh),或者直接跳转到 [agentproto.sh/features](https://agentproto.sh/features) 以查看下面的诚实分割。
## 已实现与路线图
该存储库在同一个名称下提供了两个非常不同的功能:
- **第一层 - 已实现且经过验证:** 守护进程、CLI、九种代理适配器(Claude Code、Claude SDK、Codex、Hermes、opencode、Mastra Code + 进程中、Mastra Agent、OpenClaw、browser-as-agent)、持久性策略门控、嵌套编排与角色门控、扇入监控、工作流/ cron 以及守护进程上的 MCP 接口(约 90 种工具)。
- **第二层 - 更广泛的 AIP 规格家族:** 约 52 个编号的规格位于 [agentproto/agentproto](https://github.com/agentproto/agentproto)。大多数参考实现包在第一层之外都是 `0.1.0-alpha` 脚手架 - 真实的模式、真实的意图,但还不是可用的软件。
完整分解:<https://agentproto.sh/features>。如果您在第二层声明中找到任何已发布的声明,请提交问题 - 该分割是合同。
## 贡献适配器
适配器合同很小:通过 AIP-45 清单声明 `models[]` 和 `modes[]`,实现生命周期动词,并重用共享的 `provider-kit` 原语(凭证、目录条目、设置/状态工具)。明显的空白:gemini-cli、aider、goose、cline、Continue。请参阅 `adapters/claude-code` 以获取完整的参考实现,并在跟踪器中查找 `good first issue` 标签。
## VS Code 扩展
`packages/vscode` 包含私有的 `agentproto-vscode` 扩展:用于守护进程会话和权限的本地操作视图,以及用于从编辑器管理代理的命令。每个 [Releases](https://github.com/agentproto/ts/releases) 资产都在 CI 中构建,从不提交到存储库:
- **开发构建** - `main` 上的每个推送都会发布一个带有 `vscode-dev-<sha>` 标签的 prerelease VSIX,用于获取最新的开发版本。
- **官方发布** - 包含 vscode 更改的“版本包”PR 合并发布了一个版本化的 VSIX,标签为 `vscode-v<version>`,与每个其他包的发布频率相同。
通过 VS Code 的 **Extensions: Install from VSIX...** 命令安装任意一个。
要自己构建:
```bash
cd packages/vscode
pnpm package
unzip -t agentproto-vscode-*.vsix
```
有关开发和验证命令,请参阅 [`packages/vscode/README.md`](./packages/vscode/README.md)。
## 软件包
存储库分为五个层,每个层都是 `packages/` 或 `adapters/` 下的兄弟子树。
### 1 — 运行时和守护进程
`@agentproto/runtime` 是将工作区转换为实时 AIP 运行时的长期网关:会话管理、MCP 服务器、HTTP 传输、HEARTBEAT 自主循环和追加日志的对话持久性。
```
packages/runtime/ @agentproto/runtime 会话生命周期、MCP 工具、HTTP API、监督器/编排器
packages/cli/ @agentproto/cli `agentproto` 二进制文件 - 安装适配器、运行/提供会话、守护进程
packages/mcp-server/ @agentproto/mcp-server 每种数据类型 CRUD MCP 工具(创建/加载/列出/更新/解决/删除)
```
**运行时公开的关键 MCP 工具:
| 工具 | 用途 |
|---|---|
| `agent_start` / `agent_prompt` / `agent_output` / `agent_kill` / `agent_interrupt` | 启动、驱动、中断和停止长期运行的代理 CLI 会话 |
| `agent_set_model` / `agent_set_effort` / `agent_set_posture` | 会话配置轴的最佳努力实时切换(如果正在运行的适配器无法实时应用它们,则返回 `{applied:false, reason}`) |
| `agent_sessions_list` / `agent_export` | 列出代理会话;导出干净的转录记录 |
| `conversation_read` | 读取任何会话后面的提供者原生对话(代理 CLI 或 PTY) |
| `session_list` / `session_tree` / `session_usage` / `session_restart` | 规范的会话列表、层次结构、使用情况和恢复 |
| `session_archive` / `session_unarchive` | 从规范列表中隐藏/恢复会话(VS Code “显示存档”切换) |
| `session_rename` | 设置或清除会话的用户友好 `title` / `label` |
| `terminal_start` / `terminal_input` / `terminal_output` / `terminal_kill` | 驱动原始 PTY 会话 |
| `command_log_tail` | 读取 `command_execute` 的 JSONL 审计日志 |
| `policy_attach` / `policy_cancel` / `policy_status` | 监督完成策略生命周期 |
| `workflow_run_file` / `workflow_start` / `workflow_status` / `workflow_cancel` | 运行 WORKFLOW.md 和阶段屏障工作流 |
| `tunnel_create` / `tunnel_list` / `tunnel_stop` / `tunnel_status` | 本地端口的公共 URL 隧道 |
| `list_provider_presets` | 网关预设(Anthropic、Moonshot、OpenRouter、Requesty、DeepSeek、xAI) |
| `catalog_models` | 可运行模型和路由的只读目录(守护进程 `GET /catalog/models`) |
| `list_sandbox_providers` / `setup_sandbox_provider` | 沙盒提供商目录和凭证 |
| `list_eval_reporters` / `setup_eval_reporter` | 评估报告后端(例如 Langfuse) |
| `start_browser` / `stop_browser` / `browser_status` | 管理浏览器会话 |
| `mcp_discovered_list` / `mcp_imported_list` / `mcp_import` / `mcp_imported_remove` | 发现和策划导入的 MCP 服务器 |
| `mcp_imported_status` / `mcp_imported_tool_list` / `mcp_imported_call` | 代理导入的 MCP 工具 |
| `permissions_list` / `permissions_respond` | 跨权限保持会话的权限请求 |
| `cron_create` / `cron_list` / `cron_delete` / `cron_run` | recurring 守护进程作业(按需) |
| `role_list` | 枚举启动时角色和委托特权 |
| `daemon_health` | 廉价的进程内活性探测 |
| `agentproto_session_story` / `agentproto_terminal` | 会话故事/实时 PTY MCP 应用面板 |
| `agentproto_sessions` / `agentproto_bureau_sessions` | MCP 应用面板视图 |
### 2 — 适配器家族
```
packages/provider-kit/ @agentproto/provider-kit 共享目录、凭证、设置账本、MCP 工具原语
packages/provider-presets/ @agentproto/provider-presets 共享网关预设注册表(Anthropic、Moonshot、OpenRouter、Requesty、DeepSeek、xAI)
adapters/claude-code/ @agentproto/adapter-claude-code AIP-45 适配器,用于 Claude Code
adapters/claude-sdk/ @agentproto/adapter-claude-sdk AIP-45 适配器,用于 Claude SDK(Anthropic/Moonshot/OpenRouter 网关模式)
adapters/hermes/ @agentproto/adapter-hermes AIP-45 适配器,用于 Hermes
adapters/opencode/ @agentproto/adapter-opencode AIP-45 适配器,用于 OpenCode
adapters/codex/ @agentproto/adapter-codex AIP-45 适配器,用于 Codex
adapters/openclaw/ @agentproto/adapter-openclaw AIP-45 适配器,用于 Openclaw
adapters/mastra-agent/ @agentproto/adapter-mastra-agent 第一方代理 - AIP-42 AGENT.md 作为实时 Mastra 代理在 ACP 后台运行
adapters/browser/ @agentproto/adapter-browser 浏览器/CDP 会话适配器
```
所有代理 CLI 适配器共享 `provider-kit` 原语:`makeSetupTool`(单字段或多字段凭证)、`computeStatus`、`AdapterCatalogEntry` 和 `makeCredsStore`。`mastra-agent` 是唯一一个例外:其他适配器都包装一个外部代理 CLI,而 `mastra-agent` 是端到端的 - 一个 `AGENT.md` 作为实时 Mastra 代理(我们的循环,我们的模型)通过 `agentproto-mastra acp` 启动。
### 3 — 工具创作
用于在运行时或投影到主机框架中消耗的工具的原始三层模型:合约 → 实现 → 包。
```
packages/tool/ @agentproto/tool AIP-14 defineTool, ToolHandle, 验证器
packages/driver/ @agentproto/driver AIP-30 implementTool, defineDriver, runTool, 解析器
packages/driver/cli/ @agentproto/driver-cli AIP-29 CLI/子进程传输
packages/driver/http/ @agentproto/driver-http HTTP 传输
packages/driver/mcp/ @agentproto/driver-mcp MCP 服务器传输
packages/driver/sdk/ @agentproto/driver-sdk SDK / 动态导入传输
```
```ts
import { defineTool } from "@agentproto/tool"
import { implementTool, defineDriver } from "@agentproto/driver"
import { z } from "zod"
const greetTool = defineTool({
id: "greet",
description: "用绑定区域的本地语言问候一个名字。",
inputSchema: z.object({ name: z.string() }),
outputSchema: z.object({ greeting: z.string() }),
contextSchema: z.object({ locale: z.enum(["en", "fr"]) }),
})
const greetBuiltin = implementTool(greetTool, async ({ input, context }) => ({
greeting: context.locale === "fr" ? `Bonjour ${input.name}` : `Hello ${input.name}`,
}))
const greetDriver = defineDriver({
id: "greet-builtin",
name: "Greet (builtin)",
description: "进程内问候。",
kind: "builtin",
implements: [{ tool: "greet", version: "0.1.0" }],
implementations: [greetBuiltin],
})
```
在主机框架的工具形状中重新表达任何 `ToolImplementation`:
```
adapters/ai-sdk/ @agentproto/adapter-ai-sdk Vercel AI SDK 工具投影
adapters/mastra/ @agentproto/adapter-mastra Mastra createTool 投影
packages/mastra/ @agentproto/mastra AIP-42 AGENT.md → Mastra 代理
```
```ts
import { toAiSdkTool } from "@agentproto/adapter-ai-sdk"
import { toMastraTool } from "@agentproto/adapter-mastra"
const aiSdkTool = toAiSdkTool(greetBuiltin, { context: { locale: "en" } })
const mastraTool = toMastraTool(greetBuiltin, { source: { context: { locale: "en" } } })
```
### 4 — 知识和工作流
```
packages/corpus/ @agentproto/corpus AIP-10/12/18 知识组成(纯净,无 I/O)
packages/corpus-cli/ @agentproto/corpus-cli `corpus` 二进制文件 - 验证、检查、操作一个 corpus 工作区
packages/workflow-runtime/ @agentproto/workflow-runtime AIP-15 类型步行者(工具/映射/分支/循环/转换)
packages/agent-runtime/ @agentproto/agent-runtime 多代理运行时内核,可交换端口
```
`@agentproto/corpus` 将 AIP-10 知识、AIP-12 攻略、AIP-18 集合、AIP-9 操作员、AIP-15 工作流和 AIP-41 例行程序组成一个自主知识改进系统。纯净:零运行时,零文件系统,零 HTTP - 所有 I/O 通过注入的端口。
### 5 — 平台:身份验证、沙盒、机密、遥测
```
packages/auth/ @agentproto/auth 可插拔的 CredentialStore + 设备代码(RFC 8628)身份验证流程
packages/sandbox/ @agentproto/sandbox agent_start.sandbox:启动/重新连接/暂停隔离的盒子
packages/secrets/ @agentproto/secrets 代理解决的身份验证头,mcp-header 暴露
packages/redaction/ @agentproto/redaction 依赖无关的 Redactor 端口,用于转录日志/日志清理
packages/telemetry/ @agentproto/telemetry 遥测端口 + OTel 适配器
packages/eval/ @agentproto/eval 评分器 + runEval,包括一个 LLM 评判器
```
## 规格
AIP Markdown 规格位于 [agentproto/agentproto](https://github.com/agentproto/agentproto)。在 <https://agentproto.sh/docs> 上浏览渲染版本。
此处实施的关键规格:
| AIP | 规格 | 软件包 |
|---|---|---|
| AIP-9 | OPERATOR.md | `@agentproto/operator` |
| AIP-10 | KNOWLEDGE.md | `@agentproto/corpus` |
| AIP-12 | PLAYBOOK.md | `@agentproto/corpus` |
| AIP-14 | TOOL.md | `@agentproto/tool` |
| AIP-15 | WORKFLOW.md | `@agentproto/workflow`, `@agentproto/workflow-runtime` |
| AIP-17 | RUNNER.md | `@agentproto/runner` |
| AIP-18 | COLLECTION.md | `@agentproto/corpus` |
| AIP-29 | CLI.md | `@agentproto/driver-cli` |
| AIP-30 | DRIVER.md | `@agentproto/driver` |
| AIP-36 | SANDBOX.md | `@agentproto/sandbox` |
| AIP-40 | EXTENSION.md | `@agentproto/extension` |
| AIP-41 | ROUTINE.md | `@agentproto/routine` |
| AIP-42 | AGENT.md | `@agentproto/agent`, `@agentproto/mastra` |
| AIP-45 | 代理 CLI 适配器 | `adapters/{claude-code,claude-sdk,hermes,opencode,codex,openclaw,mastra-agent}` |
## 从源码构建
```bash
pnpm install
pnpm -r build
pnpm -r test
```
## 许可证
Apache-2.0 - 请参阅 [LICENSE](./LICENSE)。版权 2026 Jeremy André 和 agentproto 贡献者。
## 贡献
规格演化发生在 [agentproto/agentproto](https://github.com/agentproto/agentproto)。此存储库跟踪 AIP 进展 - 实现随着 AIP 达到审查/最终状态而跟进。欢迎为运行时错误修复、性能和适配器覆盖率提交 PR - 请参阅上面的“贡献适配器”。
连接信息
猜你喜欢
暂无推荐服务器