Version: 0.8.5.dev.260330

后端:
1.把node/plan的具体逻辑做完了,没仔细看,进入下一步之前需要仔细review

前端:
无改动

全仓库:
无改动
This commit is contained in:
Losita
2026-03-30 22:08:30 +08:00
parent 6d22acb270
commit e1a06be768
10 changed files with 1494 additions and 184 deletions

View File

@@ -8,25 +8,18 @@ import (
)
const (
// ExecuteNextPlanSignal 表示“当前 plan 步骤已经完成,可以进入下一个步骤”。
//
// TODO(newagent/node): 后续 executeNode 识别到该信号后,调用 state.AdvanceStep() 或决定进入交付阶段。
// ExecuteNextPlanSignal 表示“当前 plan step 已完成,可以推进到下一个步骤”。
ExecuteNextPlanSignal = "[NEXT_PLAN]"
// ExecuteDoneSignal 表示“整个任务已经完成,可以结束执行链路”。
//
// TODO(newagent/node): 后续 executeNode 识别到该信号后,调用 state.Done() 并进入 deliver。
// ExecuteDoneSignal 表示“整个任务已经完成,可以进入最终交付”。
ExecuteDoneSignal = "[DONE]"
// ExecuteAskUserSignal 表示“执行阶段缺关键信息,需要向用户追问”。
//
// TODO(newagent/node): 后续若你决定支持 ask_user这里可作为统一控制信号继续扩展。
// ExecuteAskUserSignal 表示“执行当前步骤缺少关键信息,需要向用户追问”。
ExecuteAskUserSignal = "[ASK_USER]"
)
const executeSystemPrompt = `
你是 SmartFlow NewAgent 的执行器。
你的职责是在“当前 plan 步骤”的约束下,进行思考、执行、观察,再决定下一步动作。
请遵守以下规则:
@@ -52,13 +45,6 @@ func BuildExecuteSystemPrompt() string {
}
// BuildExecuteMessages 组装执行阶段的 messages。
//
// 职责边界:
// 1. 负责收敛执行阶段需要的 system / pinned / history / runtime prompt
// 2. 负责把“完整 plan + 当前步骤 + 控制信号”显式告知模型;
// 3. 不负责解析模型输出,也不负责真正调用工具。
//
// TODO(newagent/node): 后续 executeNode 应直接复用这个方法,而不是在节点内手拼执行提示词。
func BuildExecuteMessages(state *newagentmodel.CommonState, ctx *newagentmodel.ConversationContext) []*schema.Message {
return buildStageMessages(
BuildExecuteSystemPrompt(),
@@ -94,8 +80,13 @@ func BuildExecuteUserPrompt(state *newagentmodel.CommonState) string {
sb.WriteString(ExecuteAskUserSignal)
sb.WriteString("。\n")
sb.WriteString("\n当前步骤正文\n")
sb.WriteString(currentStep)
sb.WriteString(strings.TrimSpace(currentStep.Content))
sb.WriteString("\n")
if strings.TrimSpace(currentStep.DoneWhen) != "" {
sb.WriteString("\n当前步骤完成判定\n")
sb.WriteString(strings.TrimSpace(currentStep.DoneWhen))
sb.WriteString("\n")
}
} else {
sb.WriteString("当前 plan 已存在,但当前步骤索引无效;请不要擅自执行其他步骤。\n")
}