refactor(tools): get_worker_output 移除 terminated 与 worker_name 字段

terminated 仅凭有无 result 记录推断,会把运行中(尚无最终结论)的 work
误报为 terminated=true,语义不可靠;worker_name 对调用方也无实际用途。
两字段一并从返回中删除,并同步更新工具描述。
This commit is contained in:
Autumn-27 committed 2026-09-10 10:19:19 -04:00
1 parent 72a52e9202
commit ae22e456ce
1 file changed
+6 -6
+6 -6
View File
@@ -1882,7 +1882,7 @@ func (t *ToolSet) steerWorkTool() actool.CoreTool {
// getWorkerOutput returns a work's final (or截至中止时的) conclusion text by intent id. // getWorkerOutput returns a work's final (or截至中止时的) conclusion text by intent id.
func (t *ToolSet) getWorkerOutput() actool.CoreTool { func (t *ToolSet) getWorkerOutput() actool.CoreTool {
return readTool("get_worker_output", "取本任务或直接关联任务某条意图(work)的最终输出结论。关联任务结果带 source_task_id/inherited=true 且只读。正常结束返回其总结;被终止(stopped)/异常的 work 返回其截至中止时的最后输出(terminated=true)。", return readTool("get_worker_output", "取本任务或直接关联任务某条意图(work)的最终输出结论。关联任务结果带 source_task_id/inherited=true 且只读。正常结束返回其总结;被终止(stopped)/异常的 work 返回其截至中止时的最后输出。",
obj(map[string]any{"intent_id": idp("意图 id(= work 句柄)")}, "intent_id"), obj(map[string]any{"intent_id": idp("意图 id(= work 句柄)")}, "intent_id"),
func(_ context.Context, in json.RawMessage) (actool.Result, error) { func(_ context.Context, in json.RawMessage) (actool.Result, error) {
var a struct { var a struct {
@@ -1914,14 +1914,14 @@ func (t *ToolSet) getWorkerOutput() actool.CoreTool {
fallback = &acts[i] fallback = &acts[i]
} }
} }
pick, terminated := chosen, false pick := chosen
if pick == nil { if pick == nil {
pick, terminated = fallback, true pick = fallback
} }
if pick == nil { if pick == nil {
if intentNode.Inherited { if intentNode.Inherited {
return jsonResult(inheritedMap(map[string]any{ return jsonResult(inheritedMap(map[string]any{
"intent_id": id, "final_text": "(该 work 尚无任何输出)", "terminated": true, "intent_id": id, "final_text": "(该 work 尚无任何输出)",
}, intentNode.SourceTaskID)) }, intentNode.SourceTaskID))
} }
return actool.Text("(该 work 尚无任何输出)"), nil return actool.Text("(该 work 尚无任何输出)"), nil
@@ -1931,8 +1931,8 @@ func (t *ToolSet) getWorkerOutput() actool.CoreTool {
detail = pick.Summary detail = pick.Summary
} }
result := map[string]any{ result := map[string]any{
"intent_id": id, "worker_name": pick.Worker, "final_text": detail, "intent_id": id, "final_text": detail,
"summary": pick.Summary, "is_error": pick.IsError, "terminated": terminated, "summary": pick.Summary, "is_error": pick.IsError,
} }
if intentNode.Inherited { if intentNode.Inherited {
inheritedMap(result, intentNode.SourceTaskID) inheritedMap(result, intentNode.SourceTaskID)