📖 中英段落对照阅读

项目概览

Plandex 是专为大型项目和真实世界任务设计的开�?AI 编码 Agent。与大多�?单文件即时编�?�?CLI 工具不同,Plandex 采用 Plan-based 工作流:先生成任务计划,再逐步执行,适合复杂的跨文件重构�?

技术栈

维度技�?
语言Go 1.23.3
架构Client-Server(可本地或远程部署)
模块plandex-cli, plandex-server, plandex-shared
数据�?支持 PostgreSQL(从 migrations/ 推断�?
容器Docker + docker-compose
代理litellm_proxy.py(多模型路由�?

目录结构

plandex/
├── app/
�?  ├── cli/                 # Go CLI 客户�?�?  �?  ├── main.go          # 入口
�?  �?  └── go.mod (plandex-cli)
�?  ├── server/              # Go 服务�?�?  �?  ├── main.go          # 入口
�?  �?  ├── go.mod (plandex-server)
�?  �?  ├── db/              # 数据库模型与连接
�?  �?  ├── handlers/        # HTTP API 处理�?�?  �?  ├── routes/          # 路由定义
�?  �?  ├── model/           # 业务模型
�?  �?  ├── migrations/      # 数据库迁�?�?  �?  ├── syntax/          # 语法分析(代码解析)
�?  �?  ├── diff/            # Diff 引擎
�?  �?  ├── hooks/           # 生命周期钩子
�?  �?  ├── notify/          # 通知系统
�?  �?  └── email/           # 邮件服务
�?  ├── shared/              # 共享�?�?  �?  └── go.mod (plandex-shared)
�?  └── plans/               # 计划模板/示例
├── docs/                    # 文档
├── releases/                # 发布产物
└── scripts/                 # 脚本

核心入口与公�?API

模块入口职责
CLIapp/cli/main.go终端交互、本地文件操作、与服务端通信
Serverapp/server/main.go计划生成、任务编排、模型调用、状态持久化
Sharedapp/shared/数据类型、工具函数、协议定�?
Syntaxapp/server/syntax/多语言代码解析和符号提�?
Diffapp/server/diff/代码变更计算与应�?

亮点设计

1. Plan-based 工作�?Plandex 的核心差异化设计�?1. 理解: 分析用户目标和代码库上下�?2. 规划: 生成详细的执行计划(跨文件修改步骤)

  1. 执行: �?plan 逐步调用 LLM 生成代码
  2. 验证: 应用变更前展�?diff,用户确认后写入

这种模式�?单轮对话直接改文�?更适合大型重构,降低了幻觉和破坏性修改的风险�?

2. Client-Server 架构

大多�?CLI Agent 是纯客户端(直接调用 LLM API),�?Plandex 支持分离部署�?- CLI: 轻量级客户端,负责文�?I/O 和用户交�?- Server: 可独立部署的服务,承载计划生成、状态管理、模型调�?
这意味着团队可以共享一�?Plandex Server,统一管理 API Key、使用配额和计划历史�?

3. 语法感知 (Syntax)

app/server/syntax/ 目录实现代码解析,支持精确的词法/语法分析。这用于�?- 准确的代码分割和上下文提�?- 避免在字符串/注释中错误匹配代�?- 生成更高质量�?repo map

4. 数据库持久化

Server 端使用数据库存储�?- 用户计划历史

  • 多步骤任务的中间状�?- 项目配置和上下文缓存

这使�?Plandex 更像一�?有状态的 Agent 服务”而非无状态的 CLI 工具�?

5. Multi-model Proxy

litellm_proxy.py 提供多模型路由,可在不同任务步骤中切换模型(如用轻量模型做计划,用强模型做代码生成)�?

待深入研�?

  • app/server/syntax/ 的语法解析器设计(是否基�?tree-sitter�?- [ ] app/server/diff/ 的变更应用引擎(如何处理多文件原子性)
  • Plan 的数据结构和状态机(Plan �?Step �?Task �?Execution�?- [ ] CLI �?Server 的通信协议(gRPC / REST / WebSocket�?- [ ] app/server/handlers/ �?API 设计(是否支持团队协作)

与知识库的关�?