开源AI智能体框架:有性格有规则能自造工具
时间:2026-07-17 | 作者:极客少年 | 阅读:0
大家好,我是张泽钰律师。
日常办案件,业余写Python。
法律人的思维方式和AI Agent治理意外地匹配。
核心都是同一个问题:怎么给一个自主实体授权,同时防止它乱来?
本文将以通俗易懂的方式,带你深入了解我构建并开源的AI Agent框架——OpenSymphony。
它已在PyPI发布(
cd opensymphony
pip install -e ".[dev]"
pytest
# 395 passing, 6 known intent-bridge failures
```
## 快速开始
### 环境准备
- 确保Python版本 >= 3.9
- 建议在虚拟环境中安装
### 安装与启动
```bash
pip install opensymphony
python -m opensymphony.gateway.http
```
### 定义你的第一个Soul YAML文件
创建`souls/my_agent.yaml`,内容参考上面的示例。
你可以根据自己的需求调整`thinking_framework`和`values`。
### 加载并运行Agent
```python
from opensymphony.agents.soul import Soul
from opensymphony.agents.soul_compiler import compile_soul
soul = Soul.from_yaml("souls/my_agent.yaml")
prompt = compile_soul(soul, output_mode="agent")
```
治理层是可选的——可以先不用,等需要时再叠加投票、防御或HITL。
## 小提示
- 在定义Soul时,`veto_conditions`是硬性开关,建议优先设置。例如“禁止删除数据库”或“禁止发送财务数据”。
- 启用治理层后,建议先在测试环境中运行,观察Voting和Defense Layer的拦截效果,再部署到生产。
- 本地模型推荐使用GPT4All或Llama.cpp,内存占用低,适合快速测试。
## 常见问题
### Q1:Agent忘记了之前的设定,怎么办?
这是典型的Prompt drift问题。
OpenSymphony的Soul系统通过YAML文件编译成行为框架,跨会话持久有效。
如果Agent表现异常,检查Soul文件是否被修改,或者重新加载Soul即可。
### Q2:如何阻止Agent执行危险操作?
启用Defense Layer和HITL Manager。
在治理层配置中,将高风险操作分类为`dangerous`,并设置人工确认。
示例:
```python
# 在配置中启用HITL
kernel.enable_hitl(manager="default")
```
### Q3:Agent自行造工具是否安全?
Tool Workshop在沙箱中运行,有资源限制和治理监督。
新工具创建后,会自动经过风险分类流程。
建议在`veto_conditions`中限制工具可访问的目录或API,防止误操作。
### Q4:如何让Agent学习历史决策?
启用Precedent Store。
它横跨L2和L3记忆层,Agent在做决策时会自动检索类似历史记录。
你可以通过`kernel.precedent_store.search(keyword)`手动查看已存储的先例。
### Q5:为什么需要三层记忆?只用一层可以吗?
可以,但推荐使用三层。
L1提供快速会话上下文,L2存储经验教训,L3持久化长期记忆。
如果只用L1,Agent会在会话结束后丢失所有学习内容,无法成长。
如果只用L3,响应速度会变慢。
三层设计平衡了速度与持久性。
## 作为律师来造这东西带来什么有趣的变化?
法律系统花了大概900年来解决一个问题——AI Agent现在也面临这个问题:怎么给自主实体决策权,同时防止滥用?
法律的答案是结构性的。
宪法、先例、投票流程、辩护律师、上诉审查。
而不是在system prompt里写“请小心”。
OpenSymphony借鉴了这些模式:
Soul是职业行为准则,Precedent Store是判例法,Defense Layer是风险评估,Voting Mechanism是协商民主,HITL Manager是司法审查。
目标不是通过prompt engineering让Agent“有道德”。
而是用结构性的约束,让坏行为难以发生、可审计、可修正。
## 现状和路线图
框架MIT许可,代码在GitHub。
13个内置Soul覆盖代码审查到创意写作等场景。
应用模块已有小说产线和内容生产管线。
**现在能用的**:
Soul系统、全量治理层、三层记忆、LLM路由、Tool Workshop、HTTP/WebSocket/CLI网关。
**规划中的**:
更多Soul、更好的本地模型集成、用语义搜索扩展先例检索。
如果你也在做Agent系统,对agent治理有想法——这个项目的GitHub Issues和PR都开着,欢迎来聊聊。
pip install opensymphony),并拥有395个测试用例全部通过。
无论你是开发者、AI爱好者,还是对Agent治理感兴趣的朋友,这篇教程都将帮助你快速上手,并理解其核心设计理念。
## 核心痛点
市面上大部分Agent框架解决的是“编排”问题——怎么把LLM调用串起来。
几乎没人解决一个更难的问题:Agent是谁?它遵守什么规则?它做错了谁来拦它?
靠人来拦是不现实的,靠它自己自觉更是痴人说梦。
用过LangChain Agent的话,应该遇到过这些:
- **不一致**:昨天还好用的Agent今天变成了另一个人。Prompt drift是真实存在的
- **不可审计**:Agent做了一个决策,没有记录为什么。没有先例,没有审查
- **不安全**:你可以在system prompt里说“小心一点”,但没有任何结构性机制阻止风险操作
- **不成长**:Agent不会学习。同样的错误反复犯
OpenSymphony用三个架构支柱来应对:Soul(灵魂)、Governance(治理)、Self-evolution(自我进化)。
## 支柱一:Soul——持久的Agent身份
Agent的性格不是一段prompt。
是一个YAML文件,编译成行为约束。
```yaml
# souls/my_agent.yaml
id: my_agent
name: MyAgent
archetype: Code Reviewer
thinking_framework: |
You are a code reviewer focused on security and correctness.
Rules:
1. Flag any unvalidated user input
2. Check for race conditions in concurrent code
3. Prefer readability over cleverness
values:
- Security first
- Evidence-based review
- Constructive feedback
```
`thinking_framework`是操作逻辑,`values`是优先级冲突时的排序原则。
还可以定义`veto_conditions`——硬性阻止某些操作的开关。
这不叫prompt engineering。
Soul Compiler把YAML编译成结构化的行为框架,跨会话、跨session持续有效。
Agent不会忘记自己是谁。
### 内置13个Soul
- `themis`(法律推理)
- `athena`(策略)
- `crit`(对抗审查)
- `shield`(安全)
- `code`(实现)
- `novelist`
- `screenwriter`
- 等等
每个都有自己的思考框架、价值层级和否决条件。
**打个法律上的比方**:Soul就像职业行为准则。
律师不会接了案子才临时想“律师-当事人保密义务是什么”。
它是框架自带的。这里也一样。
## 支柱二:Governance——结构化决策
这部分最能体现法律背景带来的差异。
律所里,决策走层级。
助理起草,资深合伙人审查,风险委员会标记冲突,先例指导后续判断。
OpenSymphony做同样的事:
```
Request → Gateway → [IntentBridge] → [Governance] → Runtime → Kernel → Response
↑
Voting / Precedent / Defense
```
治理层有四个机制:
### Voting Mechanism(投票机制)
多个Agent投票决策。
可配多数规则和超时。
三个Agent里两个说“这个操作安全”,就通过。
反对意见被记录。
### Precedent Store(先例存储)
历史决策变成可搜索的先例。
Agent下次遇到类似决策时,检索相关历史。
这就是普通法的运作方式——stare decisis(遵循先例),只不过用在AI Agent上。
### Defense Layer(防御层)
每个操作被分类为`safe`、`risky`或`dangerous`。
Risky操作需要额外审查。
Dangerous操作除非人类覆盖否则直接拦截。
### HITL Manager(人在回路)
高风险操作需要人工确认。
Agent提议,人决定。
```python
from opensymphony.kernel import SymphonyKernel
kernel = SymphonyKernel()
kernel.load_souls("souls/")
# 请求经过治理层后才执行
response = kernel.chat("crit", "Should we deploy this untested change to production")
```
当你问`crit` Agent能不能上线未经测试的代码,Defense Layer标记为risky。
Voting Mechanism可以轮询多个Agent。
Precedent Store调出类似历史决策。
HITL Manager可以要求你签字。
我们要达到的效果就是:没有哪个Agent能独自做出不可逆决策。
## 支柱三:Self-Evolution——Agent自己造工具
Tool Workshop让Agent在运行时创建、测试、部署Python工具。
Agent遇到当前工具集解决不了的任务。
它自己写一个新的,测试,注册到工具库。
不需要人类介入——但治理仍然适用。
新工具走同样的风险分类流程。
这很关键——你不可能预判Agent未来需要的所有工具。
替代方案要么是维护一个巨无霸工具集(维护噩梦),要么给Agent`eval`权限(安全噩梦)。
Workshop是折中方案:Agent可以扩展能力,但在沙箱里,有资源限制和治理监督。
## 架构:洋葱模型
每个请求经过同心层:
```
┌─────────────────────────────────────────────────┐
│ Gateway │
│ (HTTP / WebSocket / CLI) │
│ └─ HumanAdapter — IntentBridge (NL → struct) │
├─────────────────────────────────────────────────┤
│ Governance │
│ ├─ Voting Mechanism — 多Agent决策 │
│ ├─ Precedent Store — 可重用的历史决策 │
│ ├─ Defense Layer — 风险评估 │
│ └─ HITL Manager — 人在回路 │
├─────────────────────────────────────────────────┤
│ Runtime │
│ ├─ AgentPool — 并发Agent管理 │
│ ├─ TaskScheduler — 优先级队列 │
│ └─ AgentSandbox — 资源限制 │
├─────────────────────────────────────────────────┤
│ Kernel │
│ ├─ Soul Compiler — YAML → 行为规则 │
│ ├─ LLM Router — 云端 + 本地模型 │
│ ├─ Memory (L1 / L2 / L3) — 三层存储 │
│ └─ Tool Workshop — Agent自行造工具 │
└─────────────────────────────────────────────────┘
```
Intent Bridge把自然语言转成结构化意图。
Governance审查意图。
Runtime带资源限制执行。
Kernel做实际工作:Soul编译、LLM路由、记忆检索、工具管理。
没有任何请求能绕过Governance到达Kernel。
## 三层记忆
Agent需要不同时间尺度上的记忆:
| 层级 | 存储 | 用途 |
|------|------|------|
| L1 | 内存 | 当前会话上下文 |
| L2 | SQLite | 经验数据库,支持全文搜索 |
| L3 | 云端API | 长期持久记忆 |
L1快、短命。
L2存储Agent学到的教训——“这个API限流100 req/min”、“这个用户喜欢简洁回复”。
L3是可选的云存储,跨会话持久化。
Precedent Store横跨L2和L3。
Agent做决策时存下来。
类似情景出现时检索出来。
随时间推移,系统建立自己的判例法。
## LLM路由——云端和本地都支持
LLM Router同时支持云端API和本地模型。
不同Agent可以路由到不同模型——简单的分类任务用本地7B模型,复杂推理走云端。
这对成本和隐私都很关键。
一个治理系统如果每次决策都走第三方API,那就是个数据泄露通道。
本地模型把敏感决策留在你的硬件上。
普通消费级硬件就能跑。
我在一台16GB RAM的Mac mini上开发和运行OpenSymphony。
本地推理不快,但能用。
## 395个测试意味着什么
测试覆盖治理层、Soul编译、记忆层级、LLM路由和Tool Workshop。
治理逻辑需要确定性测试——你不能靠LLM的概率性输出来验证Defense Layer是否正确拦截了危险操作。
```bash
git clone 免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 字节跳动发布豆包工作 与飞书深度打通构建企业级Agent
- 时间:2026-08-25
-
- AI通话录音手机续航实测能用多长时间
- 时间:2026-08-23
-
- Adobe Photoshop 27.7桌面版发布 移除工具支持端侧AI运行 苹果Mac需24GB内存
- 时间:2026-08-23
-
- 育碧远哭7测试AI生成画面效果 知情者评价其表现不佳
- 时间:2026-08-23
-
- AMD锐龙9 PRO 9965X3D及锐龙AI PRO 400商用台式机2026Q3上市
- 时间:2026-08-22
-
- 思必驰冲刺上市,AI语音行业护城河为何消失
- 时间:2026-08-21
-
- 道题看懂AI商业趋势与未来发展方向
- 时间:2026-08-21
-
- AI清理500GB空间实测:Agent暂时还替代不了电脑管家
- 时间:2026-08-21
精选合集
更多大家都在玩
大家都在看
更多-
- 蚂蚁新村小课堂今日答案10月23日 江苏溧阳的跳幡神是一种
- 时间:2026-10-23
-
- 蚂蚁新村2026年10月23日答案最新
- 时间:2026-10-23
-
- 蚂蚁庄园答案2026年10月24日
- 时间:2026-10-23
-
- 蚂蚁庄园今天答题答案2026年10月24日
- 时间:2026-10-23
-
- 蚂蚁庄园今日答案2026年10月24日
- 时间:2026-10-23
-
- 秦始皇陵地宫至今未发掘,主要原因是 蚂蚁庄园今日答案10.24
- 时间:2026-10-23
-
- 小鸡答题今天的答案是什么2026年10月24日
- 时间:2026-10-23
-
- 蚂蚁庄园每日答题答案2026年10月24日
- 时间:2026-10-23