feat: add agent registry manifests and coverage
Introduce a manifest-backed agent registry surface and align graph tests with the new runtime prompt and tool indexing behavior.
This commit is contained in:
@@ -62,17 +62,40 @@ def _filter_user_messages(messages: list[BaseMessage]) -> list[BaseMessage]:
|
||||
return [m for m in messages if m.type in ("human", "user")]
|
||||
|
||||
|
||||
def _dedupe_tools_by_name(tools: list) -> list:
|
||||
deduped_tools = []
|
||||
seen_tool_names: set[str] = set()
|
||||
for tool in tools:
|
||||
if tool.name in seen_tool_names:
|
||||
continue
|
||||
deduped_tools.append(tool)
|
||||
seen_tool_names.add(tool.name)
|
||||
return deduped_tools
|
||||
|
||||
|
||||
def _get_role_tools(role: AgentRole) -> list:
|
||||
"""获取角色对应的所有可用工具集"""
|
||||
if role == AgentRole.SCHEDULE_PLANNER:
|
||||
# 合并分析和规划工具
|
||||
return list(set(SUB_COMMANDER_TOOLSETS["schedule_analysis"] + SUB_COMMANDER_TOOLSETS["schedule_planning"]))
|
||||
return _dedupe_tools_by_name(
|
||||
SUB_COMMANDER_TOOLSETS["schedule_analysis"]
|
||||
+ SUB_COMMANDER_TOOLSETS["schedule_planning"]
|
||||
)
|
||||
if role == AgentRole.EXECUTOR:
|
||||
return list(set(SUB_COMMANDER_TOOLSETS["executor_tasks"] + SUB_COMMANDER_TOOLSETS["executor_forum"]))
|
||||
return _dedupe_tools_by_name(
|
||||
SUB_COMMANDER_TOOLSETS["executor_tasks"]
|
||||
+ SUB_COMMANDER_TOOLSETS["executor_forum"]
|
||||
)
|
||||
if role == AgentRole.LIBRARIAN:
|
||||
return list(set(SUB_COMMANDER_TOOLSETS["librarian_retrieval"] + SUB_COMMANDER_TOOLSETS["librarian_graph"]))
|
||||
return _dedupe_tools_by_name(
|
||||
SUB_COMMANDER_TOOLSETS["librarian_retrieval"]
|
||||
+ SUB_COMMANDER_TOOLSETS["librarian_graph"]
|
||||
)
|
||||
if role == AgentRole.ANALYST:
|
||||
return list(set(SUB_COMMANDER_TOOLSETS["analyst_progress"] + SUB_COMMANDER_TOOLSETS["analyst_insights"]))
|
||||
return _dedupe_tools_by_name(
|
||||
SUB_COMMANDER_TOOLSETS["analyst_progress"]
|
||||
+ SUB_COMMANDER_TOOLSETS["analyst_insights"]
|
||||
)
|
||||
return []
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user