Empryo
以代码图谱和 AST 符号编辑减少代码修改风险。
这个 Agent 能做什么,适合哪些场景?
Empryo 是一款本地运行的 AI 编程代理,前身为 SoulForge。它在启动时用 tree-sitter 解析仓库,构建包含符号、导入关系和调用点的实时依赖图谱,并用 PageRank 与 Git 协同变更数据排序。代理通过 AST 进行符号级修改,而非简单文本替换,并提供原子批处理与回滚机制。产品提供原生桌面应用、完整终端 UI,以及可用于脚本和 CI 的无头 CLI,三者共享同一代码图谱。该仓库是 Empryo 的公开问题与讨论入口,同时保留已归档的 SoulForge 源码;新功能开发已转向 Empryo。
运行 empryo 后,Empryo 会解析当前项目,索引符号、导入和调用点,并建立可查询的代码图谱。它可在修改前查看导入依赖、历史共同变更和影响范围,再通过 65+ 种符号级 AST 操作及跨 30+ 种语言的结构化编辑修改代码;批量操作支持全成或全不成的回滚,并以 typecheck 作为门槛。它还提供并行 explore/edit 子代理、共享 I/O 缓存、十个可路由角色、MCP 服务器连接、语言服务器支持,以及将每条提示保存为 Git 检查点的回退机制。
- 维护跨模块 TypeScript、Python 或其他支持语言项目的开发者,在重命名或重构前需要查看调用点和潜在影响范围。
- 需要在终端中处理代码任务的工程师,希望使用 `empryo` CLI 而不是桌面界面。
- 在 CI 或脚本中集成无头代码代理流程的团队,使用同一套代码图谱执行自动化任务。
- 同时处理多个工作区的开发者,为不同标签页分配不同模型和角色,例如用低成本模型探索、用更强模型编写代码。
- 对私有仓库有本地处理要求的团队,使用自带的模型密钥,或通过 Ollama、LM Studio 在本地运行模型。
这个 Agent 有哪些优点和局限?
- 以符号、导入和调用点构成的实时图谱导航代码,并结合 PageRank 与 Git 协同变更排序,而不是只依赖全文检索。
- 提供 65+ 种 AST 符号级操作、原子批处理和回滚,面向结构化重构而非脆弱的字符串替换。
- 同时覆盖原生桌面应用、终端 UI 与无头 CLI,适合交互开发和脚本/CI 两种使用方式。
- 支持多模型角色路由、22 个提供商、本地 Ollama/LM Studio,以及 OpenAI 兼容端点。
- 使用云端模型需要自行提供相应服务商密钥;虽然 Ollama 可免密本地运行,但需要自行准备本地模型环境。
- 仓库中明确说明新功能开发已迁至 Empryo,而此处主要是问题、讨论和归档的 SoulForge 源码,无法据此审阅 Empryo 当前实现。
- 安装方式包含远程 shell 或 PowerShell 安装脚本;采用这类方式前需要符合团队的软件安装与供应链政策。
- 高级语言服务器能力依赖 Mason 管理的语言服务器,实际可用性取决于所用语言服务器及本地环境。
如何安装或部署这个 Agent?
macOS/Linux:curl -fsSL https://empryo.com/install.sh | bash;Windows PowerShell:irm https://empryo.com/install.ps1 | iex。也可使用 Homebrew:brew install proxysoul/tap/empryo,或 Windows Package Manager:winget install ProxySoul.Empryo。随后设置 Anthropic 密钥:empryo --set-key anthropic sk-ant-...;如使用本地 Ollama,则无需密钥。
如何使用这个 Agent?
进入目标项目并运行:cd your-project,然后执行 empryo。该命令会启动终端界面并处理当前仓库;桌面应用和预编译二进制可从下载页获取。可按标签页或项目配置角色路由,并连接 MCP 服务器或使用语言服务器能力。无头 CLI 也可用于脚本或 CI。
这个 Agent 与同类方案有什么区别?
README 提供了与 pi 的基准对比:在两轮指定任务中,Empryo 报告了更低成本和更短墙钟时间;第二轮为 hono、zod、ky 的真实缺陷任务。该比较仅覆盖 README 所述的模型、仓库和任务设置。