-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
status:todoPlanned but not startedPlanned but not started
Description
-
🔍 发现的问题 / 原始需求描述
- 当前 Agent Card 中未动态暴露底层 MCP 能力,A2A 客户端无法发现可用 MCP 工具并按能力编排。
- 已有工具调用流映射基础,但“能力发现”仍缺位。
- 目标:支持 MCP Skill/Tool 的动态发现与注册。
-
🛠️ 详细实施方案 (必须包含涉及的文件路径和核心逻辑/伪代码)
- 文件:
src/opencode_a2a_serve/opencode_client.py- 新增 MCP 查询方法(基于上游
/mcp或等价接口)。
- 新增 MCP 查询方法(基于上游
- 文件:
src/opencode_a2a_serve/app.py- 构建 Agent Card 时动态注入
skills/capabilities,并附刷新时间戳。
- 构建 Agent Card 时动态注入
- 文件:
src/opencode_a2a_serve/mcp_registry.py(新增)- 提供内存缓存 + TTL,避免每次请求都拉取上游能力。
- 文件:
docs/guide.md- 说明动态发现开关、缓存 TTL、失败回退(回退静态能力)。
- 伪代码:
tools = mcp_registry.get_or_refresh() agent_card.skills = map_mcp_tools_to_a2a_skills(tools)
- 文件:
-
🧪 回归测试建议
- 文件:
tests/test_agent_card.py- 验证 MCP 能力映射后可在 Agent Card 中被发现。
- 文件:
tests/test_opencode_session_extension.py- 验证上游 MCP 不可达时回退行为(不阻断主流程)。
- 性能回归:
- 验证能力缓存命中率与 Agent Card 响应时延。
- 文件:
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
status:todoPlanned but not startedPlanned but not started