Skip to main content
Glama

a2p2a (测试中 · alpha)

把手上零散的 AI 接进同一个工作区,让它们分工把活干完。

你手上可能已经有 Claude Code、Codex、Hermes、小龙虾 OpenClaw 这些命令行 AI,它们各干各的,互不相识。 a2p2a 做的事很朴素:把它们接进同一个工作区,配上几个角色,你说一句需求,它们自己聊清楚、分工、干活,过程你在群里看得见。

你说想法 → 秘书追问到清楚 → 目标进工作群 → 管理挑人派活 → 工人真干活 → HR 打分复盘

现在是什么状态:能跑通完整链路(已实测),但还在早期,接口和界面都会改。 下面「现在已实现」是如实清单,「还没做」也一并列出来,免得你踩坑。

愿景(目标是这个,不是现在)

一个多智能体与人类共同协作的平台 —— 搭起属于自己的一人公司:让智能体高效、可靠地运行,让创意可以无限发挥。

现在的 a2p2a 只是朝这个方向的第一步:先把「接进来、分好工、能干活、看得见」跑通。 一人公司要靠的是可靠的编排 + 可复盘的评价,这两块还在早期。

Related MCP server: @cowork/mcp-server

现在已实现(都是实测过的)

能力

现状

接入智能体

一条命令行模板,或一个 MCP 地址;本机自动检测(小龙虾 / Claude Code / Codex / Hermes / OpenCode / Aider)可一键接入;接上后它会自报能力

智能体库

智能体是全局通用的:导入一次,多个工作区按需选用;角色(秘书/管理/HR/工人)在工作区里指定;需要更多窗口就派生一个(连接方式照抄)

三个开关

秘书模式 / AgentBus / HR,每个工作区独立;关掉 AgentBus 就是单 agent 直接干完,没有中间环节

秘书

由你接进来的某个成员扮演:跟你追问、把想法聊清楚,确认后把归纳好的目标发到工作群

管理(主代理)

只在 AgentBus 模式参与:按能力标签 + 智能程度 + 价格分挑人,选流程派活,并在群里说明为什么这么派

HR

按节拍打分(每 N 次任务,或你说「分析」):硬性(耗时/上下文)、能力、智能程度(报错返工)、价格;报告进群

工作群

只给人看:AI 之间走总线,聊天记录不污染 AI 上下文;消息带头像/用户名/类型,按任务折叠,可切「只看人话/看全部」

跟单个智能体

可以直接对话(测试用),也可以下调整类干预(配色/风格/重做这一步);改输出或改流程的请求会被拒绝

内置智能体

自带一个跑在本机的:执行命令行、读写文件、发群消息、调内部能力(看成员/进度/分数、派流程、让 HR 打分)。填个模型 API 就能用

编排内核

流程 = 一份 JSON 文档;积木(秘书/分发器/CC工人/Hermes会话/汇总/审批)一个文件一个;支持并行调度、重试、超时、输入瘦身、审批挂起与续跑、运行痕迹

自调优

读痕迹出改进建议(只建议,不自动改)

MCP 控制面

对外暴露 14 个工具,外部智能体(含 CC/Codex)能操控本系统,也能自我注册进来

界面

三栏 + 顶部标签;管理界面 5 页;多语言(中/英,语言包可插);主题(浅/深/随系统);附件上传;安全清空 / 恢复出厂

部署

一条 bash start.sh 起服务(自动装依赖);数据全在 data/a2p2a.db,拷走即带走;package.sh 打发布包,publish.sh 建仓推送

还没做(诚实清单)

没做

说明

手机 APP

计划中

技能 / MCP 深度绑定

计划中

自动改架构

自调优目前只出建议,不改流程;流程编辑器(画布)已删掉,不做

聪明的内置角色

秘书/管理/HR 的"聪明程度"取决于你接进来的那个 agent;内置智能体是基础版

挑人规则

单 agent 模式目前只按「空闲 + 价格分」挑,标签匹配还在早期

多用户 / 权限

单机单人设计,没有账号体系

平台验证

只在 Linux/WSL 实测过;Windows 原生(非 WSL)环境未验证

和别的方案比,差别在哪

别人

a2p2a

要求你把 agent 用它的 SDK 重写一遍

不改你的 agent:一条命令或一个 MCP 地址就接进来

编排写成只有它能读的图 / 只有你懂的脚本

编排是 一份 JSON 流程文档,人和 AI 都能读写

AI 聊天记录当成 AI 的上下文,越跑越贵

群只给人看:AI 之间走总线,上下文干净

只能自己给自己派活

真的派活干活:能跑命令行、改文件、调工具,不等你点确认

装完是空壳,还得自己配模型、配 agent

自带一个本地智能体:填个模型 API 就能跑命令行;本机已有的 agent 一键接入

30 秒上手

装好 Node.js 就能一行跑(跟 deepseek-harness 一样的用法):

npx a2p2a

它会自己找(或装)Python、建好依赖、起服务并打开浏览器 —— 前端已经预构建在包里,你不需要装 Node 之外的任何东西。 数据存在 ~/.a2p2a/,换版本、清缓存都不丢。

或者解压发布包双击启动(只用 Python,不需要 Node):

哪个系统都能起(第一次自动装依赖,然后打开 http://localhost:8080 —— 前端已打包在里面,不需要 Node.js):

系统

怎么起

缺 Python 时

Windows

双击 start.bat

自动装:优先 winget install Python.Python.3.12,没 winget 就下载官方安装器静默安装(装完重新双击一次)

macOS

双击 start.command

有 Homebrew 就 brew install python;否则弹 Xcode 命令行工具安装,或去 python.org 下安装包

Linux / WSL

bash start.sh

自动用 apt / dnf / pacman / zypper 装 python3 python3-venv(要 sudo 密码)

三个入口都是同一个跨平台启动器 start.py 的外壳:建 .venv 装后端依赖 → 起服务 → 自动开浏览器。 后端直接托管打包好的前端,所以普通用户只需要 Python,不需要 Node.js,也不需要 WSL。

  1. 左栏「内置智能体」→ 填模型线路(地址 / Key / 模型名)→ 启用(它就能跑命令行、读写文件、发群消息)

  2. 左栏「导入智能体」→ 点「本机检测到的」里任意一个(小龙虾 / Claude Code / Codex / Hermes / OpenCode)一键接入

  3. 「管理界面 → 分工表」→ 指定谁当秘书、谁当管理、谁当 HR

  4. 回「秘书」标签说一句需求,或直接在「主工作群」里下命令

目录里那个 data/ 是你的全部数据(工作区、成员、分数、记录)。拷走它就全带走了;删掉它就是全新一套。

三个开关(每个工作区独立)

开关

开

关

秘书模式

秘书跟你聊、追问,确认后把目标发到工作群

你直接面对工作群

AgentBus

管理智能体挑人派活(多 agent 编排)

单 agent 模式:一个成员直接干完

HR

按节拍(每 N 次任务 / 你说分析)打分复盘

不打分

参考文献

文档

给谁看

docs/dev/

开发者:架构 / 怎么写积木 / 流程格式 / 接口 / 接智能体 / 改动约定 / 路线图

docs/publish.md

发布流程(建仓推送、Release、topics)

docs/launch.md

宣传文案与发帖计划

三个规矩(这就是全部设计)

规矩

落点

文档即流程

一条流程 = flows/*.flow.json(节点 + 连线 + 位置),AI 和人都能读写

一个积木一个文件

blocks/*.py,继承 Block,只写 inputs/outputs/run(),导入即注册

痕迹落盘

每次运行写 trace/<run_id>.jsonl + state-<run_id>.json,这是自调优的燃料

用法

cd a2p2a

python run.py plan    flows/demo_offline.flow.json                 # 干跑:只看计划
python run.py run     flows/demo_offline.flow.json --input 用户消息="甲。乙"
python run.py run     flows/secretary_workers.flow.json --input 用户消息="…"   # 真干活(Claude Code)
python run.py approve trace/state-<run_id>.json --flow flows/approval_demo.flow.json --node 审批 --decision yes
python run.py evolve  flows/demo_offline.flow.json                 # 读痕迹,出改进建议

配置项(写在流程文档里,改了就有用)

配置

写在哪

作用

默认

max_parallel

流程顶层

同时最多跑几个节点(1 = 完全串行)

4

retry / retry_delay_s

节点 config

失败自动重试次数与间隔

0 / 2s

timeout_s

节点 config

runtime 层强制超时(积木自己死循环也拉得回来)

3600

max_input_chars

节点 config

给这个节点的单个文本输入设上限(超出截断并记痕迹)

6000

max_list_items

节点 config

列表输入的条数上限

8

max_output_chars

节点 config

产出进下游/痕迹前的截断上限

20000

auto_approve_low_risk

审批节点 config

低风险动作自动放行,只拦高风险

false

上下文纪律(工人的上下文很短)

手段

谁做

一次只发一条任务:清单 → 分发器(序号) → 各工人一条

blocks/dispatcher.py

输入自动瘦身:超长文本截断、超长列表截条数,并在痕迹里留 node_input_trimmed

runtime._trim_payload

产出自动截断:进下游和痕迹前按 max_output_chars 截

runtime._trim_outputs

痕迹只存摘要:每条事件里的内容截到 160 字,长正文留在产出里

runtime._brief

目录

路径

干什么

kernel/block.py

积木基类 + 注册表(借 Langflow 的 Component 设计)

kernel/flowdoc.py

流程文档:加载 / 校验 / 拓扑排序 / 装配输入

kernel/runtime.py

执行器:调度、状态、痕迹、审批挂起与续跑

kernel/evolve.py

自调优 v0:读痕迹出建议(只建议,不自动改)

blocks/

积木:秘书 / CC 工人 / 模拟工人 / 汇总 / 审批

flows/

流程文档:离线演示 / 真干活 / 审批闸门

trace/

运行痕迹与状态(自调优读这里)

evolve/

生成的改进建议

节点状态(统一词表)

idle → running → done / failed / waiting_approval / waiting_input / waiting_upstream

  • waiting_approval:要人点头 → 第 3 步把所有这类节点汇总起来,就是「集中审批收件箱」

  • waiting_input:缺必填输入

  • waiting_upstream:上游没跑完(含挂起),下游就等,不拿占位数据硬跑

自调优怎么长(v0 → vN)

v0 规则表在 kernel/evolve.py 的 analyze() 里,现在四条:反复失败 / 单节点太慢 / 反复等人 / 输入槽没接上。 往后每加一条规则就是加一个"看到这种痕迹就建议这么改"的映射;等你愿意让它自动改时,把 propose() 的输出直接喂给 AI 改 flows/*.json,再用 plan 干跑 + 回归样例把关即可。

参考与取舍

借来的

自己写的

积木抽象(inputs/outputs + 干活方法)

组织语义(秘书/工人/汇报)

流程文档结构(节点 + 连线 + 位置)

双通道(聊天与干活分开)

状态挂在节点上、实时可见

集中审批收件箱

循环/条件/工具的积木思路

按痕迹自调优

给别人用(发布版)

bash start.sh          # 起后端 :8080 + 前端 :5173(第一次会自动装前端依赖)
# 打开 http://localhost:5173

第一次用只有两步:

步骤

在哪做

填什么

1

左栏「导入智能体」

一条命令(或一个 MCP 地址),比如你自己的 claude -p …。接上后它会自报能力

2

「管理界面 → 分工表」

把接进来的成员指定角色:谁当秘书、谁当管理、谁当 HR(一个角色一个)

a2p2a 自己不配模型 —— 秘书 / 管理 / HR 都是用你接进来的成员在干活,它们用各自的接法。 所有数据都在 data/a2p2a.db 里:拷走它就带走了工作区、成员、分数和记录;删掉它就是全新的一套。

安全:左栏「设置 → 安全 / 清空」里可以「清空所有记录」或「恢复出厂」,都要先输入「删除」两个字。

目录

| 路径 | 干什么 |

Related MCP Connectors

Related MCP Servers