Skip to content

Latest commit

 

History

History
35 lines (31 loc) · 1.89 KB

File metadata and controls

35 lines (31 loc) · 1.89 KB
plan_and_solve/
├── models.py
├── harness.py
├── tools.py
├── planner.py
├── executor.py
├── agent.py
├── demo.py
└── README.md
文件 职责
models.py 定义跨模块共享的 dataclass:PlanStepActionObservationAgentDecision。不包含执行逻辑。
harness.py 提供通用 Agent 运行循环:接收 Agent Decision,执行 Action,生成 Observation,再交回 Agent。不了解 Plan-and-Solve 的具体规划逻辑。
tools.py 定义最小 Tool 抽象、Tool Registry,以及 calculatorread_file 两个工具实现。
planner.py 将用户任务转换为结构化 Plan → Step → Action。Prototype v1 可采用规则解析,后续替换为 LLM Provider 而不影响 Executor 或 Harness。
executor.py 真正执行 Step.action:按工具名从 Registry 获取 Tool,执行后返回标准 Observation。不调用 LLM 解释步骤。
agent.py PlanSolveAgent 实现 Agent Mode 决策逻辑:创建计划、选择下一 Step、根据 Observation 更新 Step 和 Context、形成最终答案。
demo.py 组装 Harness、Tools 和 PlanSolveAgent,运行数学、读取文件、文件不存在三个场景。
README.md 说明运行方式、架构边界、目前 Prototype 的能力和限制。

建议第一版保持扁平目录,而不要过早拆出 models/tools/ 等子包:当前每个职责仅一个小模块,拆包会增加导入和协作复杂度。等出现多个 Tool、多个 Planner 策略或多个 Mode 后,再演进为:

agent_core/
├── models/
├── harness/
├── tools/
└── modes/
    └── plan_solve/

当前结构保留了未来拆分边界:harness.py 是通用层,agent.py + planner.py + executor.py 是 Plan-and-Solve Mode 层,tools.py 是可共享能力层。