|
@@ -283,6 +283,8 @@ async def _run_agents(
|
|
|
per_agent_msgs: List[Messages],
|
|
per_agent_msgs: List[Messages],
|
|
|
continue_from: Optional[str],
|
|
continue_from: Optional[str],
|
|
|
store, trace_id: str, goal_id: str, runner, context: dict,
|
|
store, trace_id: str, goal_id: str, runner, context: dict,
|
|
|
|
|
+ agent_type: Optional[str] = None,
|
|
|
|
|
+ skills: Optional[List[str]] = None,
|
|
|
) -> Dict[str, Any]:
|
|
) -> Dict[str, Any]:
|
|
|
"""
|
|
"""
|
|
|
统一 agent 执行逻辑。
|
|
统一 agent 执行逻辑。
|
|
@@ -317,7 +319,7 @@ async def _run_agents(
|
|
|
# continue_from 已经设置了 sub_trace_id
|
|
# continue_from 已经设置了 sub_trace_id
|
|
|
pass
|
|
pass
|
|
|
else:
|
|
else:
|
|
|
- agent_type = "delegate" if single else "explore"
|
|
|
|
|
|
|
+ resolved_agent_type = agent_type or ("delegate" if single else "explore")
|
|
|
suffix = "delegate" if single else f"explore-{i+1:03d}"
|
|
suffix = "delegate" if single else f"explore-{i+1:03d}"
|
|
|
stid = generate_sub_trace_id(trace_id, suffix)
|
|
stid = generate_sub_trace_id(trace_id, suffix)
|
|
|
|
|
|
|
@@ -327,7 +329,7 @@ async def _run_agents(
|
|
|
task=task_item,
|
|
task=task_item,
|
|
|
parent_trace_id=trace_id,
|
|
parent_trace_id=trace_id,
|
|
|
parent_goal_id=goal_id,
|
|
parent_goal_id=goal_id,
|
|
|
- agent_type=agent_type,
|
|
|
|
|
|
|
+ agent_type=resolved_agent_type,
|
|
|
uid=parent_trace.uid if parent_trace else None,
|
|
uid=parent_trace.uid if parent_trace else None,
|
|
|
model=parent_trace.model if parent_trace else None,
|
|
model=parent_trace.model if parent_trace else None,
|
|
|
status="running",
|
|
status="running",
|
|
@@ -342,7 +344,7 @@ async def _run_agents(
|
|
|
# 广播 sub_trace_started
|
|
# 广播 sub_trace_started
|
|
|
await broadcast_sub_trace_started(
|
|
await broadcast_sub_trace_started(
|
|
|
trace_id, stid, goal_id or "",
|
|
trace_id, stid, goal_id or "",
|
|
|
- agent_type, task_item,
|
|
|
|
|
|
|
+ resolved_agent_type, task_item,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
if single:
|
|
if single:
|
|
@@ -367,11 +369,12 @@ async def _run_agents(
|
|
|
messages=agent_msgs,
|
|
messages=agent_msgs,
|
|
|
config=_make_run_config(
|
|
config=_make_run_config(
|
|
|
trace_id=cur_stid,
|
|
trace_id=cur_stid,
|
|
|
- agent_type="delegate" if single else "explore",
|
|
|
|
|
|
|
+ agent_type=agent_type or ("delegate" if single else "explore"),
|
|
|
model=parent_trace.model if parent_trace else "gpt-4o",
|
|
model=parent_trace.model if parent_trace else "gpt-4o",
|
|
|
uid=parent_trace.uid if parent_trace else None,
|
|
uid=parent_trace.uid if parent_trace else None,
|
|
|
tools=allowed_tools,
|
|
tools=allowed_tools,
|
|
|
name=task_item[:50],
|
|
name=task_item[:50],
|
|
|
|
|
+ skills=skills,
|
|
|
),
|
|
),
|
|
|
)
|
|
)
|
|
|
coros.append((i, cur_stid, collab_name, coro))
|
|
coros.append((i, cur_stid, collab_name, coro))
|
|
@@ -492,6 +495,8 @@ async def agent(
|
|
|
task: Union[str, List[str]],
|
|
task: Union[str, List[str]],
|
|
|
messages: Optional[Union[Messages, List[Messages]]] = None,
|
|
messages: Optional[Union[Messages, List[Messages]]] = None,
|
|
|
continue_from: Optional[str] = None,
|
|
continue_from: Optional[str] = None,
|
|
|
|
|
+ agent_type: Optional[str] = None,
|
|
|
|
|
+ skills: Optional[List[str]] = None,
|
|
|
context: Optional[dict] = None,
|
|
context: Optional[dict] = None,
|
|
|
) -> Dict[str, Any]:
|
|
) -> Dict[str, Any]:
|
|
|
"""
|
|
"""
|
|
@@ -504,6 +509,8 @@ async def agent(
|
|
|
task: 任务描述。字符串=单任务,列表=多任务并行
|
|
task: 任务描述。字符串=单任务,列表=多任务并行
|
|
|
messages: 预置消息。1D 列表=所有 agent 共享;2D 列表=per-agent
|
|
messages: 预置消息。1D 列表=所有 agent 共享;2D 列表=per-agent
|
|
|
continue_from: 继续已有 trace(仅单任务)
|
|
continue_from: 继续已有 trace(仅单任务)
|
|
|
|
|
+ agent_type: 子 Agent 类型,决定 preset 和默认 skills(如 "deconstruct")
|
|
|
|
|
+ skills: 附加到 system prompt 的 skill 名称列表,覆盖 preset 默认值
|
|
|
context: 框架自动注入的上下文
|
|
context: 框架自动注入的上下文
|
|
|
"""
|
|
"""
|
|
|
if not context:
|
|
if not context:
|
|
@@ -545,6 +552,8 @@ async def agent(
|
|
|
return await _run_agents(
|
|
return await _run_agents(
|
|
|
tasks, per_agent_msgs, continue_from,
|
|
tasks, per_agent_msgs, continue_from,
|
|
|
store, trace_id, goal_id, runner, context,
|
|
store, trace_id, goal_id, runner, context,
|
|
|
|
|
+ agent_type=agent_type,
|
|
|
|
|
+ skills=skills,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|