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:
2026-04-02 14:34:26 +08:00
parent e9ba8597e9
commit 4251a79062
12 changed files with 1111 additions and 423 deletions

View File

@@ -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 []