SuperAPI AI 工具集

ag2-acp

智能体与模型

查看项目

更新于 10-15 19:49

技能介绍

用途:把外部 CLI 编码智能体(Claude Code、Codex、OpenCode)作为一等 AG2 Agent 驱动。AG2 扮演 ACP 客户端,每个 CLI 智能体作为 ACP Agent 子进程运行;其消息、思考、工具调用、计划、权限请求都外化到 AG2 事件流,可观察、拦截与编排。集成只需配置类(ACPConfig 及预设),不改 Agent API。

主要能力:一次 ask()/run() 对应一个 ACP 提示轮次,CLI 智能体自行运行内部工具循环,AG2 实时流式输出每一步。ACP 更新映射为 AG2 事件:消息块→ModelMessageChunk/ModelResponse,思考→ModelReasoning,工具调用/结果→BuiltinToolCallEvent/BuiltinToolResultEvent,计划→ACPPlan,模式变更→ACPModeChange,可用命令→ACPAvailableCommands。权限策略 permission_policy 支持 ask(默认,走 hitl_hook/context.input)、auto(自动批准)、deny(自动拒绝)。文件访问受 fs_root 限制,终端由 AG2 中介。

用法:pip install "ag2[acp]";各 CLI 需在 PATH 上安装对应 ACP 适配器(Claude Code:npm i -g @agentclientprotocol/claude-agent-acp;Codex:npm i -g @agentclientprotocol/codex-acp;OpenCode:opencode acp)。公开 API:from ag2.acp import ACPConfig, ClaudeCodeConfig, CodexConfig, OpenCodeConfig。示例:config = ClaudeCodeConfig(cwd="/path/to/repo"); agent = Agent("coder", config=config); reply = await agent.ask("...");结束调用 await config.aclose()。

适用场景:从 Python 编排 CLI 编码智能体(无头重构流水线、管理者智能体委派编码智能体、批量代码修改);实时观察其思考与工具调用;对敏感操作做权限门控或人工介入;将文件访问限制在工作区根目录。

限制:model 字段仅为响应元数据,不发送给智能体,需通过适配器自身机制(ANTHROPIC_MODEL、MODEL_PROVIDER、opencode.json)选模型;子进程环境为精简基础集,导出的 API 密钥不会继承,需用 env= 显式传入;无头运行下默认 ask 会拒绝所有敏感操作,需设 auto;AG2 的 tools=[...] 暂不暴露给 CLI 智能体;旧适配器 claude-code-acp 已弃用。测试可用 ag2.acp.testing.fake_acp_config 与 ACPTurn 在进程内运行,无需子进程和 API 密钥。