Common Agent Framework:给 B 端一套知道边界的智能体框架
引言
2026 年初,多智能体系统从「个人玩具」走向「企业工具」。这个过程中有个问题没解决:Agent 怎么知道自己该做什么、不该做什么?
OpenClaw 证明了「本地 Agent + Skill 文件」的威力,但更适合 C 端个人用户。企业需要同样的范式,建立在不同的信任模型上。
我们一直在做类似的事情:Common Agent Framework (CAF),一个面向 B 端的多智能体框架。核心主张:
B 端需要的不是更强的 Agent,而是知道边界的 Agent。

一、CAF 解决的核心问题
企业上 AI Agent,障碍是信任。一个 Agent 要跑起来,必须回答三个问题:
| 问题 | 传统方案的困境 | CAF 的解决方式 |
|---|---|---|
| 它知道什么? | Prompt 靠经验堆砌,规则散落各处 | 业务本体结构化定义 |
| 它能做什么? | 代码硬编码,边界不清晰 | Skill 白名单 + 黑名单双控 |
| 它做了什么? | 日志散乱,难以追溯 | 本体层面的执行对账 |
CAF 把业务本体编译成 Skill 子集。
flowchart LR
subgraph OLD["传统模式"]
A1[业务专家] --"口头说明"--> B1[开发者]
B1 --"写代码"--> C1[Agent 代码]
C1 --"黑盒执行"--> D1[结果?]
end
subgraph NEW["CAF 模式"]
A2[业务专家] --"定义规则"--> B2[Skill 文件]
B2 --"编排执行"--> C2[可预期的结果]
B2 -. "版本管理" .-> E2[活文档]
B2 -. "审计基准" .-> F2[合规记录]
end
style OLD fill:#ffebee,stroke:#c62828
style NEW fill:#e8f5e9,stroke:#2e7d32
style B2 fill:#fff9c4,stroke:#f9a825,stroke-width:2px
这种模式带来三个关键特性:
| 特性 | 价值 |
|---|---|
| 可预期性 | Agent 的行为空间由 Skill 白名单限定,不会出现「我也不知道它会做什么」 |
| 可演化性 | 业务规则变了,只改本体定义即可 |
| 可审计性 | 每次执行都对照本体定义,偏差即是异常 |
二、核心特性概览
2.1 Markdown 驱动的技能系统
CAF 的 Skill 是业务本体的结构化表达:
---
name: compliance-review
domain: legal-compliance
paradigm: plan
allowed-tools:
- file_read
- internal_compliance_db
tools_forbidden:
- file_delete
- external_api_call
approval_required:
- condition: "风险等级 == 高"
approvers: ["compliance_manager"]
uncertainty_policy: suspend
orchestration:
mode: sequential
steps:
- id: extract_clauses
description: "提取合同条款"
- id: rule_matching
description: "对照规则库匹配"
depends_on: [extract_clauses]
- id: generate_report
description: "生成审核报告"
depends_on: [rule_matching]
role: reduce
---
这个文件是:业务文档、执行规范、权限边界、编排声明、审计基准。
2.2 智能编排系统
CAF 支持四种编排拓扑,自动适配不同的业务流程:
graph LR
subgraph FanOut["fan_out - 并行收集"]
F1[子任务 A]
F2[子任务 B]
F3[子任务 C]
end
subgraph Sequential["sequential - 串行流水线"]
S1[步骤 1] --> S2[步骤 2] --> S3[步骤 3]
end
subgraph MapReduce["map_reduce - 分析归约"]
M1[Map-1]
M2[Map-2]
M3[Map-3]
R[Reduce 聚合]
M1 --> R
M2 --> R
M3 --> R
end
subgraph DAG["dag - 有向无环图"]
D1[任务 A]
D2[任务 B]
D3[任务 C<br/>依赖 A,B]
D4[任务 D<br/>依赖 C]
D1 --> D3
D2 --> D3
D3 --> D4
end
拓扑选择指南:
| 拓扑 | 典型场景 |
|---|---|
| FanOut | 多源数据收集、批量处理 |
| Sequential | 流水线、前后依赖 |
| MapReduce | 数据分析、统计汇总 |
| DAG | 条件分支、多路汇聚、复杂业务流程 |
2.3 两阶段任务分析
CAF 实现了 Effort Score 机制,防止 Agent 把简单任务过度拆解:
flowchart TD
IN[用户任务] --> SCORE["计算 Effort Score<br/>1 – 5 分"]
SCORE --> Q{Score 分级}
Q -- "1–2<br/>简单" --> D1["直接执行"]
Q -- "3<br/>中等" --> D2["拆分为 3–4 个子任务"]
Q -- "4<br/>复杂" --> D3["拆分为 4–5 个子任务"]
Q -- "5<br/>专家级" --> D4["拆分为 5–7 个子任务"]
D2 & D3 & D4 --> MODE["选择编排模式"]
MODE --> EXEC["执行子任务"]
EXEC --> AGG["结果聚合输出"]
style IN fill:#e3f2fd,stroke:#1565c0
style D1 fill:#e8f5e9,stroke:#2e7d32
style SCORE fill:#fff9c4,stroke:#f9a825,stroke-width:2px
2.4 Token 防爆护栏
CAF 的分级压缩策略保护关键信息不被遗忘:
flowchart LR
subgraph PRIORITY["压缩优先级"]
P0["🔒 System Prompt<br/>永不压缩"]
P1["🔒 初始任务指令<br/>长程基底锁定"]
P2["📌 最近 10 轮对话<br/>短期记忆保留"]
P3["📌 Important 标记<br/>人工保护"]
P4["📄 早期工具结果<br/>智能截断"]
P5["📄 早期对话<br/>折中截断"]
end
P0 --- P1 --- P2 --- P3 --- P4 --- P5
style P0 fill:#1b4fe8,color:#fff,stroke:none
style P1 fill:#1b4fe8,color:#fff,stroke:none
style P2 fill:#4a90e2,color:#fff,stroke:none
2.5 MCP 深度集成
CAF 的工具层基于 MCP 协议:
- 现有 500+ MCP 工具可直接复用
- 企业内部系统包装成 MCP Server 即可接入
- 工具的使用权限在 Skill 层声明,不在代码里硬编码
{
"mcpServers": {
"erp-readonly": {
"command": "python",
"args": ["./mcp_servers/erp_server.py"],
"env": { "ACCESS_LEVEL": "readonly" }
}
}
}
2.6 可插拔执行范式
CAF 支持 7 种可插拔范式:
| 范式 | 适用场景 |
|---|---|
| Direct | 简单问答 |
| ReAct | 需要工具解决问题的任务 |
| Plan | 复杂的多步骤长程任务 |
| Reflection | 创意写作、翻译、代码编写 |
| Tree of Thought | 需要深度探索的任务 |
| Auto | 复杂、长程且需要极高鲁棒性 |
| InlineLoop | 直接进入执行状态,适合大多数工具流 |
三、与竞品的差异
| CAF | OpenClaw | LangChain | |
|---|---|---|---|
| 设计对象 | B 端业务团队 | C 端开发者 | 开发者 |
| 知识载体 | 业务本体 → Skill | 个人习惯 → Skill | 代码 |
| 边界管理 | 白名单 + 黑名单 | 无系统性边界 | 代码控制 |
| 不确定处理 | 挂起等待人工确认 | AI 自行推测 | 取决于代码 |
| 审计粒度 | 本体合规层追踪 | 基本无 | 部分日志 |
选型决策树:
flowchart TD
START[您的自动化需求] --> Q1{数据是否敏感<br/>或有合规要求?}
Q1 -- "否" --> C1[OpenClaw<br/>个人效率自动化]
Q1 -- "是" --> Q2{是否有明确<br/>可结构化的业务规则?}
Q2 -- "否" --> C2[LangChain<br/>深度定制开发]
Q2 -- "是" --> Q3{是否需要<br/>跨系统协作?}
Q3 -- "否" --> C3[企业 RPA<br/>固定流程录制]
Q3 -- "是" --> CAF[✅ CAF<br/>业务本体驱动]
style CAF fill:#1b4fe8,color:#fff,stroke:none,stroke-width:3px
style START fill:#e8f5e9,stroke:#2e7d32
四、典型应用场景
场景一:合规 / 法务
规则明确,适合本体化:
| 环节 | 传统做法 | CAF 做法 |
|---|---|---|
| 知识来源 | 律师人工逐条审阅 | 合规规则库编译为本体 |
| 不确定处理 | 模糊处理或漏掉 | 命中 uncertainty_policy,自动挂起 |
| 审计 | 邮件 / 纸质留档 | 每条规则匹配记录可查 |
场景二:财务
数据溯源,准确性要求最高:
- 使用 python_exec 执行确定性代码,不依赖 LLM 推断
- 每个数字附带来源引用
- 与上期自动对比,标注异常项
场景三:运营
跨系统流程,追溯价值最大:
flowchart TB
O1[运营域<br/>信息收集] --> L1[合规域<br/>资质审核]
L1 --> RISK{风险等级}
RISK -- "高风险" --> APP[人工审批]
RISK -- "低/中" --> F1
APP --> F1
F1[法务域<br/>合同生成] --> SYS[系统操作域<br/>ERP 入库]
SYS --> LOG[全程留档]
style APP fill:#fff9c4,stroke:#f9a825,stroke-width:2px
style LOG fill:#e8f5e9,stroke:#2e7d32
五、快速开始
5.1 安装
git clone https://github.com/FreezeSoul/common-agent-framework.git
cd common-agent-framework
pip install -r requirements.txt
5.2 配置
cp .env.example .env
# 编辑 .env 文件,添加你的 API_KEY
5.3 定义第一个 Skill
创建 backend/skills/markdown/my_agent/SKILL.md:
---
name: my-first-agent
display_name: 我的第一个智能体
category: demo
paradigm: loop
allowed-tools:
- web_search
- file_read
---
这是我的第一个智能体助手。
5.4 运行
# 后端 API 服务
cd backend
python server.py
# 前端 Web 界面
cd frontend
streamlit run app.py
六、项目状态
已具备(可演示)
| 能力模块 | 状态 |
|---|---|
| Skill 文件系统(含 tools 白名单) | ✅ 已实现 |
| 两阶段任务分析 + Effort Score | ✅ 已实现 |
| 四种编排拓扑 | ✅ 已实现 |
| EventBus 全链路追踪 | ✅ 已实现 |
| Token 防爆护栏 | ✅ 已实现 |
| MCP 原生支持 | ✅ 已实现 |
| 多模型接入 | ✅ 已实现 |
未来规划
- DAG 高级调度引擎
- 企业知识库 RAG 集成
- 沙箱安全执行
- 人机协同增强
- 多租户隔离
七、适合谁使用
符合 3 项以上,可以试试 CAF:
- 业务流程跨 2+ 个系统
- 有明确的业务规则可以结构化表达
- 高风险操作需要人工审批节点
- 每次操作需要留痕以备审计
- 数据有合规要求
项目地址:https://github.com/FreezeSoul/common-agent-framework
欢迎 Star、Issue 和 PR。
参考资料: