编辑器集成
ACP v1 · stdio adapter
ag2cli acpAG2CLI 与 Codex CLI、Claude Code 同属终端 Agent 工具。你可以描述任务、查看工具活动、处理审批并审阅结果。
AG2CLI 不绑定特定 API 提供商,API Key 由你提供(BYOK)。支持 OpenAI API Compatible 与 Anthropic API Compatible 两种 API 协议。
workspace: /Users/ag2dev/workspace/ag2cli
model: deepseek-flash
type a message, @ to mention, / for commands
ag2cli 是什么?回复简洁,不含代码和文件,wikipedia 风格。
[done] bash · List repo root
[done] read_file
AG2CLI 是一个 agent CLI、Session 运行时,以及可选的多客户端协议服务。它由共享执行内核加上多个入口组成:本地 TUI 与 headless run 在进程内运行,serve 则作为长期后端,通过 App Server Protocol(JSON-RPC/WebSocket)为 Web、手机与未来桌面客户端提供服务。仓库采用 monorepo 分层,划分 core、runtime、protocol、client 与协议契约等 workspace 包,使领域、运行时、Host 组合与客户端边界可独立测试与替换。其 Canonical Session 事件流是持久历史的唯一事实源,客户端仅发送命令并读取投影。
done · 2 turns · 3.4s
openai · deepseek-flash · context 9.4k/128k (7.4%) · completed · ⏸ manual · effort medium · idle
先从工作方式和任务结果了解价值,再按兴趣深入执行、安全与架构。
TUI 与 headless run 在本机执行;Web / Mobile 通过 Serve 远程控制。Desktop Electron 内嵌 AG2CLI,作为本地桌面应用运行。
在本机或编辑器进程内使用
ACP v1 · stdio adapter
ag2cli acp交互式 TUI · 脚本 / CI
ag2cli · ag2cli run两种客户端形态,同一 Serve API;交付状态与连接网络分别说明
桌面与手机浏览器 · 当前客户端
apps/web独立 Web 应用;连接 Serve APIAndroid / IOS
ag2cli serve多个客户端可连接同一 Serve 与 SessionServe 默认只监听本机;局域网需显式配置,异地访问需配置可达网络。非本机连接需要 WSS 与应用认证。AG2CLI 不提供内置中继或自动组网。
内嵌 AG2CLI 的本地桌面应用
内嵌 AG2CLI,作为本地桌面应用运行。
Agent 可以在授权工作区内读取和修改文件、调用工具并委派子任务;你能看到执行进展,在需要时介入,最后检查结果并继续处理。
读写项目文件、运行 shell 工具;工具作用于明确的 workspace,并遵循当前会话的权限设置。
检查 Agent 正在做什么;需要审批时明确批准或拒绝,也可以取消仍在运行的任务。
Agent 可以把边界清楚的工作交给子 Agent;结果和完成通知回到父任务,继续汇总。
查看文件变化与工具结果,恢复可继续的 Session;调整对话历史不会自动撤销文件或其他外部副作用。
每种入口组合自己的 Host 与连接边界;Agent Runtime、Session invariants 与 provider/tool ports 构成共享的执行基础。
私有 Session command / codec;不开放网络 listener
@ag2cli/client · @ag2cli/protocolstdio adapter → 独立的临时 Host
JSON-RPC 2.0 · WebSocket / WSS · serve 提供
@ag2cli/app-server-protocol可选远程 toolkit:@ag2cli/app-server-client;其他客户端也可直接实现公开契约。
本地交互与审批面
本地自动化执行
一个 Serve · 多个客户端可 attach 同一 Session
一次集成调用 · 不附着到 serve
组合层注入 Runtime ports;公开 App Server RPC 经 method facade 路由到 Serve Host。
应用用例、执行协调与外部能力 ports
私有 Session command / codec
Session 领域、canonical events 与 invariants
Package 依赖:runtime → protocol + core;protocol → core;client → protocol + core;app-server-client → app-server-protocol。
TUI / run 使用私有本地契约;Web 与移动客户端通过公开 App Server API 进入 Serve Host。ACP v1 走 stdio adapter,并使用独立的临时 Host。不同 Host 复用 Runtime packages,但各有独立运行实例与生命周期。
一次任务中,Agent 先向你配置的模型请求下一步;需要工具时,系统按会话权限决定执行、询问或拒绝。工具结果确认后再更新本次 Session,界面据此展示进展。下面的时序图展开提交与副作用之间的技术边界。
左右滑动查看完整图表
副作用在 commit lock 外运行;worker 回来后仍须通过 generation、attempt 与 revision 校验,不能直接写 Session history。
headless run 不把主 run 返回当作整个进程的终点:它等待子任务 settle,将结果记录到任务状态与父 Session 通知,再启动 continuation run 消费通知。
左右滑动查看完整图表
子任务报告作为 task output 保留;父 Session 中的 notification 是可恢复的输入锚点,不是瞬时 UI 消息。continuation 若再次 spawn 子任务,headless 协调循环会继续处理。
准备阶段描述将要发生的效果;canonical permission judgment 根据 Session policy 给出唯一判定。客户端不自行猜测“这次是否可以放行”。
左右滑动查看完整图表
审批回答具体一次、已准备好的调用;策略漂移、资源不匹配或缺少交互面时不静默放行。
canonical events 保存已确认的 Session 事实。snapshot 可加速恢复;实时 token、在线状态等临时信息负责即时反馈,不代替已确认的任务事实。
左右滑动查看完整图表
rewind 移动 canonical 对话历史的 head,不会回滚文件、Git 或工具已产生的副作用。
serve 让已配对客户端连接同一个远程 Session,查看共同的任务进展与已确认结果;短时交互租约协调谁可以提交。断线或接管不会取消已经开始的 Agent 任务。
左右滑动查看完整图表
pairing link 是短期凭证,不包含 provider secret 或 Session 内容;网络可达本身不代表已获得 Session scope。
Session 的 canonical events 是事实源;快照、客户端流、trace、模型调用与遥测都是从事件生成的投影,可以相互核对。
关闭模型调用观测记录。
保存指纹、Provider / model、用量与状态,不保存完整请求正文。
完整请求与响应仅持久化在本地,可通过 ag2cli observe 查看。
遥测默认关闭。启用 redacted 后,canonical event 才会投影为脱敏日志;OTel bridge 是可选输出,不是事实源。
本项目仍在快速迭代,当前暂为半开源:源码 100% 开源,测试文件与设计决策文档(ADR)闭源;目前不接受外部贡献。
AG2CLI 的目标不是做一个大而全的 CLI,而是构建一组稳定、可组合的产品:LLM API 可自由切换,不绑定任何供应商;支持在局域网内使用私有 LLM API,并支持局域网与多端组网。当前优先稳定各层,下一阶段推进多端开发,因此不会仓促上线。
本项目从零开始开发,并非 fork 后修改。截至 2026-10-15,内部仓库已有约 2,000 次 commit;95% 以上的代码使用 Vibe Coding,代码规模约为 150,000 行(按 tokei 统计)。
AG2CLI 在高比例使用 Vibe Coding 的实践中积累了丰富的经验,并将继续探索如何保持架构清晰、系统稳定,及时识别和治理技术债,支撑项目长期演进。
如有意见、建议或交流,欢迎通过邮件 ag2dev@outlook.com 联系。