内容
# agent-fde
> 一个以方法论驱动的咨询智能体工具包,积累经验。
> **FDE** 管理流程和交付成果;**记忆系统** 管理经验重用。
`agent-fde` 将两个理念融合为一个干净、经过测试、开源的 Python 包:
- **FDE(前线部署工程)** — 一个 5 阶段的流程,将企业 AI/自动化部署转化为可执行的文件交付成果。
- **分层记忆 + 技能结晶** — 智能体记住有效的方法,并自动在下一次调用,就像肌肉记忆一样。
它既可以作为 **MCP 服务器** (适用于 Claude 等主机智能体),也可以作为 **命令行界面(CLI)** 。
[中文文档 →](./README.zh.md)
## 为什么
大多数智能体工具要么有强大的工作流程但没有记忆,要么积累了记忆但没有方法论。`agent-fde` 结合了两者:一个有纪律的 5 阶段参与流程 *和* 一个将每个完成的参与过程结晶为可重用的技能的记忆循环。
## 关键设计:控制反转
引擎 **从不调用 LLM** 。相反:
```
旧(存根):引擎 → 调用 LLM API → 生成交付成果 ❌ 需要 API 密钥,供应商锁定
新(反转):主机 LLM → 进行自己的分析 → 提交结构化结果
→ fde_submit_analysis(...) → 引擎验证(pydantic)+ 渲染 ✅
```
结果:该包具有 **零 LLM 依赖** — 无需 API 密钥,无供应商锁定。方法论随包附带,`SKILL.md` 提示引导主机智能体完成每个阶段。纯 CLI 使用则回退到启发式模板。
## 安装
```bash
pip install agent-fde # 核心(MCP + FDE + 记忆)
pip install "agent-fde[browser]" # + 可选的 Playwright 浏览器工具
pip install "agent-fde[dev]" # + 测试/检查工具
```
## 用法
### 作为 MCP 服务器
```bash
agent-fde serve
```
将其注册到您的 MCP 主机,例如:
```json
{
"mcpServers": {
"agent-fde": { "command": "agent-fde", "args": ["serve"] }
}
}
```
### 作为 CLI
```bash
agent-fde fde new --client "Acme Clinic" --industry "Healthcare" --project "Chart AI"
agent-fde fde list
agent-fde fde run <engagement_id> --phase 1
agent-fde fde run-all <engagement_id> --input "Doctors spend 2h/day on chart entry"
agent-fde fde deliverable <engagement_id> --phase 3
```
## 5 个阶段
| 阶段 | 名称 | 交付成果 |
|------:|------|-------------|
| 1 | 发现 | 痛点矩阵 |
| 2 | 评估 | 自动化机会列表 + 投资回报率 |
| 3 | 架构 | 技术设计 + Mermaid 图表 + 里程碑 |
| 4 | 原型 | 原型文件骨架 + 测试用例 + 设置指南 |
| 5 | 移交 | 证据包 + 项目索引 |
在第 5 阶段完成后,工具提示主机代理调用 `memory_crystallize`,关闭经验循环。
## 分层记忆(L0–L4)
| 层级 | 角色 |
|------:|------|
| L0 | 元规则(行为红线) |
| L1 | 见解索引(≤25 个导航指针) |
| L2 | 全局事实(用户偏好,环境) |
| L3 | 技能库(结晶的可重用 SOP) |
| L4 | 会话存档 |
存储在 `~/.agent-fde/` 下(可通过 `AGENT_FDE_HOME` 重写),与代码解耦。参与过程存储在 `~/.agent-fde/engagements/<id>/` 下。
## 肌肉记忆钩
`hooks/skill_reflex.py` 是一个零依赖的 Claude Code `UserPromptSubmit` 钩。在每个提示中,它会对结晶的 L3 技能(支持中文)进行模糊匹配,并将匹配的 SOP 作为上下文注入 — 无需手动检索。它与 `skill_find` MCP 工具使用的确切匹配器(单一真实来源)相同,并安全失败(任何错误 → 静默 `exit 0`)。
## 开发
```bash
pip install -e ".[dev,browser]"
pytest
ruff check .
```
## 许可证
MIT