深挖子智能体执行核:隔离任务上下文 + 多轮工具循环 #54

Closed
opened 2026-07-24 04:28:51 +00:00 by KumaAgent · 0 comments
Member

Parent

#52 [PRD] arise 深挖任务委托(Deep Task Delegation)落地

What to build

新增一个独立模块,负责给深挖任务委托跑一个隔离上下文的子智能体:组装一份只含任务描述(不含 persona/画像/关系网/情感态/历史对话)的上下文,驱动一个独立的多轮工具调用循环,直到子智能体给出最终文本或达到硬顶轮次,产出蒸馏结果。本 ticket 只交付这个执行核本身,用脚本化假 LLM 客户端驱动验证,不接前台触发(delegate_task 工具)也不接完成后的送回(Callback)。

Acceptance criteria

  • 新模块(同 reflection.py/persona_drift_guard.py 既有分层先例),提供一个无 IO 纯函数:给定任务描述,组装隔离任务上下文,可直接断言产出的 context 列表结构里不含 persona/画像/历史(同 drive_tick.py::assemble_light_context 既有测试模式)
  • 驱动一个独立多轮工具调用循环,使用 ports.llm_client(主力模型——复用 reflection.py 现状同样复用主 llm_client 的先例,不新增模型路由)
  • 子智能体可见工具集 = 工具港 get_tools("background") 返回的 host 工具(RuntimeContext.background 这个既有契约取值首次被真正接入调用点)
  • 子智能体工具集里结构性排除任何输出类工具(send_message/self_recall/edit/delegate_task 本身等)——不是运行时判断,是工具集组装时就不包含
  • 循环终止条件是子智能体自己给出最终文本(不再调用工具),产出该文本作为蒸馏结果
  • 新增独立静态硬顶控制后台工具调用轮次(新增 config 项,不复用前台 arise_run_limit,具体数字留待实现期标定);超过硬顶强制结束循环,把已拿到的内容作为蒸馏结果交差(不是直接判失败)
  • 子智能体工具调用失败按工具港既有哲学处理(失败即一次普通 tool_response,不自动重试),不中断整个循环
  • ScriptedLLMClient(见 test_reflection_cycle.py/test_persona_drift_guard.py 先例)驱动一串"调用工具→拿到结果→再调用→…→给出最终文本"的固定脚本,断言最终蒸馏文本、断言过程中不出现任何输出类工具调用、断言超过静态硬顶时强制收尾

Blocked by

None — can start immediately

## Parent #52 [PRD] arise 深挖任务委托(Deep Task Delegation)落地 ## What to build 新增一个独立模块,负责给深挖任务委托跑一个隔离上下文的子智能体:组装一份只含任务描述(不含 persona/画像/关系网/情感态/历史对话)的上下文,驱动一个独立的多轮工具调用循环,直到子智能体给出最终文本或达到硬顶轮次,产出蒸馏结果。本 ticket 只交付这个执行核本身,用脚本化假 LLM 客户端驱动验证,不接前台触发(`delegate_task` 工具)也不接完成后的送回(Callback)。 ## Acceptance criteria - [ ] 新模块(同 `reflection.py`/`persona_drift_guard.py` 既有分层先例),提供一个无 IO 纯函数:给定任务描述,组装隔离任务上下文,可直接断言产出的 context 列表结构里不含 persona/画像/历史(同 `drive_tick.py::assemble_light_context` 既有测试模式) - [ ] 驱动一个独立多轮工具调用循环,使用 `ports.llm_client`(主力模型——复用 `reflection.py` 现状同样复用主 llm_client 的先例,不新增模型路由) - [ ] 子智能体可见工具集 = 工具港 `get_tools("background")` 返回的 host 工具(`RuntimeContext.background` 这个既有契约取值首次被真正接入调用点) - [ ] 子智能体工具集里结构性排除任何输出类工具(`send_message`/`self_recall`/`edit`/`delegate_task` 本身等)——不是运行时判断,是工具集组装时就不包含 - [ ] 循环终止条件是子智能体自己给出最终文本(不再调用工具),产出该文本作为蒸馏结果 - [ ] 新增独立静态硬顶控制后台工具调用轮次(新增 config 项,不复用前台 `arise_run_limit`,具体数字留待实现期标定);超过硬顶强制结束循环,把已拿到的内容作为蒸馏结果交差(不是直接判失败) - [ ] 子智能体工具调用失败按工具港既有哲学处理(失败即一次普通 tool_response,不自动重试),不中断整个循环 - [ ] 用 `ScriptedLLMClient`(见 `test_reflection_cycle.py`/`test_persona_drift_guard.py` 先例)驱动一串"调用工具→拿到结果→再调用→…→给出最终文本"的固定脚本,断言最终蒸馏文本、断言过程中不出现任何输出类工具调用、断言超过静态硬顶时强制收尾 ## Blocked by None — can start immediately
Yushu closed this issue 2026-07-24 06:15:42 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ProjectKuma/arise#54
No description provided.