杠精派
派聪明
0/512

热门评论

Coos 2026年06月04日 09:55
引用原文:PaiCLI 的设计是默认 ReAct,用户显式 /plan 才切换,
@派聪明 为什么/plan 可以切换 具体实现原理是什么
点赞
回复1 取消回复
派聪明 2026年06月04日 09:55
`/plan` 能够切换模式,是因为系统将用户的斜杠命令(`/plan`)作为了**触发路由的指令**,将原本默认的 ReAct 执行流重定向到了 Plan-and-Execute 处理流中。 具体实现原理可以拆解为以下几个核心步骤: 1. **指令拦截与识别**:在用户输入触发大模型之前,PaiCLI 的输入解析层会优先进行拦截。当识别到输入是以 `/plan` 开头的字符串时,系统会将其判定为模式切换指令,而非普通的聊天消息。 2. **切换 Agent 控制流**:识别指令后,底层调用对应的 `PlanExecuteAgent.java`,而不再使用默认的 `Agent.java`(ReAct 循环)。 3. **生成与确认 DAG 计划**:进入 Plan 模式后,Agent 不会立即执行操作,而是将用户的任务交给 Planner(规划者 LLM),拆解成带有依赖关系(DAG 有向无环图)的多个子任务列表。然后通过 `PlanReviewInputParser.java` 暂停执行,在终端展示计划,等待用户确认(回车执行、ESC取消、按 I 补充要求)。 4. **按序执行与模式回归**:用户确认后,系统利用拓扑排序按批次执行子任务(每个子任务内部依然会降级走 ReAct 循环)。当计划中的所有子任务执行完毕后,系统会自动清理状态,**默认退回到基础的 ReAct 模式**,等待用户的下一次指令。
点赞
回复 取消回复

7 条评论

Coos 2026年06月04日 09:55
引用原文:PaiCLI 的设计是默认 ReAct,用户显式 /plan 才切换,
@派聪明 为什么/plan 可以切换 具体实现原理是什么
点赞
回复1 取消回复
派聪明 2026年06月04日 09:55
`/plan` 能够切换模式,是因为系统将用户的斜杠命令(`/plan`)作为了**触发路由的指令**,将原本默认的 ReAct 执行流重定向到了 Plan-and-Execute 处理流中。 具体实现原理可以拆解为以下几个核心步骤: 1. **指令拦截与识别**:在用户输入触发大模型之前,PaiCLI 的输入解析层会优先进行拦截。当识别到输入是以 `/plan` 开头的字符串时,系统会将其判定为模式切换指令,而非普通的聊天消息。 2. **切换 Agent 控制流**:识别指令后,底层调用对应的 `PlanExecuteAgent.java`,而不再使用默认的 `Agent.java`(ReAct 循环)。 3. **生成与确认 DAG 计划**:进入 Plan 模式后,Agent 不会立即执行操作,而是将用户的任务交给 Planner(规划者 LLM),拆解成带有依赖关系(DAG 有向无环图)的多个子任务列表。然后通过 `PlanReviewInputParser.java` 暂停执行,在终端展示计划,等待用户确认(回车执行、ESC取消、按 I 补充要求)。 4. **按序执行与模式回归**:用户确认后,系统利用拓扑排序按批次执行子任务(每个子任务内部依然会降级走 ReAct 循环)。当计划中的所有子任务执行完毕后,系统会自动清理状态,**默认退回到基础的 ReAct 模式**,等待用户的下一次指令。
点赞
回复 取消回复
嘿嗨 2026年05月31日 21:17
引用原文:按当前模型动态计算可用预算。公式是 maxContextWindow × 80%。剩下 20% 留给 LLM 的输出。
@派聪明, 这个和对话历史压缩的阈值有啥区别, 不都是最大上下文窗口来算的吗
1
回复 取消回复
Ψ 2026年05月29日 20:00
引用原文:循环次数上限
不是说没有循环上限次数吗?在ReAct agent里面
点赞
回复 取消回复
Ψ 2026年05月29日 19:57
引用原文: 把反馈内容拼接到原始任务里,再交给 Worker 重做
@派聪明,AgentOrchestrator会重新编排任务吗?
点赞
回复 取消回复
Ψ 2026年05月29日 19:55
引用原文::Planner(规划者) 拆解任务分配工作,Worker(执行者) 实际执行子任务,Reviewer(检查者) 审查 Worker 的执行结果。
感觉还是plan 模式,就是多加了个Reviewer。
点赞
回复 取消回复
Ψ 2026年05月29日 15:06
引用原文:PaiCLI 怎么处理死循环的
为什么不做迭代次数上限呢
点赞
回复 取消回复

目录