Skip to content

[Priority: Low] [Feature] 动态发现并注册 MCP Skill/Tool 能力 #78

@liujuanjuan1984

Description

@liujuanjuan1984
  • 🔍 发现的问题 / 原始需求描述

    • 当前 Agent Card 中未动态暴露底层 MCP 能力,A2A 客户端无法发现可用 MCP 工具并按能力编排。
    • 已有工具调用流映射基础,但“能力发现”仍缺位。
    • 目标:支持 MCP Skill/Tool 的动态发现与注册。
  • 🛠️ 详细实施方案 (必须包含涉及的文件路径和核心逻辑/伪代码)

    • 文件:src/opencode_a2a_serve/opencode_client.py
      • 新增 MCP 查询方法(基于上游 /mcp 或等价接口)。
    • 文件:src/opencode_a2a_serve/app.py
      • 构建 Agent Card 时动态注入 skills/capabilities,并附刷新时间戳。
    • 文件: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 响应时延。

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:todoPlanned but not started

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions