代理发现与任务委派工具

通过MCP协议实现代理间的能力注册、发现和任务委派,适用于多代理协同工作的场景。

  • by agentkitai
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 agentkitai/agentkit-mesh

使用说明

🕸️ agentkit-mesh

Agent-to-agent discovery and delegation via MCP


代理注册其功能,通过关键字/令牌重叠匹配相互发现,并委派任务。注册和发现作为标准MCP工具公开;通过HTTP执行委托(POST /task)到每个代理的注册端点。

快速开始

npx agentkit-mesh

这将通过stdio启动MCP服务器,准备连接到Claude Desktop、OpenClaw或任何MCP客户端。

MCP配置

克劳德桌面

添加 claude_desktop_config.json:

{
  "mcpServers": {
    "agentkit-mesh": {
      "command": "npx",
      "args": ["agentkit-mesh"]
    }
  }
}

龙虾

添加到您的OpenClaw配置中:

mcp:
  agentkit-mesh:
    command: npx agentkit-mesh

建筑

┌─────────────┐     MCP      ┌──────────────────┐
│  AI Agent A  │◄────────────►│                  │
└─────────────┘              │  agentkit-mesh   │
                             │                  │
┌─────────────┐     MCP      │  ┌────────────┐  │
│  AI Agent B  │◄────────────►│  │  Registry   │  │
└─────────────┘              │  │  (SQLite)   │  │
                             │  └────────────┘  │
┌─────────────┐     MCP      │  ┌────────────┐  │
│  AI Agent C  │◄────────────►│  │  Discovery  │  │
└─────────────┘              │  └────────────┘  │
                             │  ┌────────────┐  │
                             │  │ Delegation  │  │
                             │  └────────────┘  │
                             └──────────────────┘

MCP工具

mesh_register

注册具有其功能的代理。

参数 类型 说明
name string 唯一代理名称
description string 此代理的作用
capabilities string[] 功能列表
endpoint string 代理的HTTP回调URL--接收 POST /task (例如。 http://host:port/task)

mesh_discover

发现描述/功能与查询令牌重叠的代理。 匹配是简单的关键字/标记重叠(没有嵌入或语义搜索): 查询被小写并拆分为令牌,每个代理由 在其描述+功能中找到的查询标记的一小部分。

参数 类型 说明
query string 搜索查询(例如“预算管理”)
limit 号码? 返回的最大结果数

返回按令牌重叠分数和匹配的功能令牌排名的代理。

mesh_unregister

从注册表中删除代理。

参数 类型 说明
name string 要删除的代理名称

mesh_delegate

按名称将任务委派给另一个代理。

参数 类型 说明
targetName string 目标代理的名称
task string 要委派的任务描述
context 弦? 可选JSON上下文

代表团确实 不 通过MCP。网格发送HTTP POST 到目标 代理人已注册 endpoint (其 POST /task URL)。任何暴露此类物质的代理人 HTTP端点可以参与——目标端不需要MCP服务器。

代理 POST /task 合同

目标代理必须接受以下格式的JSON请求体:

{
  "delegationId": "uuid",
  "task": "Get budget and cost center for Engineering",
  "context": { "depth": 1 },
  "callbackUrl": "http://mesh-host:8766/v1/delegations/<id>/result"
}

(callbackUrl 仅适用于异步委托。)代理以以下方式之一进行响应:

  • 同步: 超文本传输协议 200 JSON正文 { "result": "..." } (或任何JSON 作为委托结果返回给调用者)。
  • 异步: 超文本传输协议 202 接受任务,然后稍后 POST 结果为 callbackUrl 和 { "status": "completed" | "failed", "result"?: ..., "error"?: ... }.
  • 失败: 任何非2xx状态;正文显示为错误。

如果注册代理人有 auth 配置后,网状物会将其连接起来(例如。 Authorization: Bearer <token>)对于即将发出的请求。

直接通过HTTP进行委派

网格还通过其自己的HTTP控制平面公开了委托流:

agentkit-mesh serve --port 8766          # start the HTTP control plane

curl -X POST http://localhost:8766/v1/delegate \
  -H "Authorization: Bearer $MESH_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{ "targetName": "finance-agent", "task": "Get Engineering budget" }'

固定控制平面

这 /v1/* 路由(注册、发现、委托等)需要共享密钥。 启动前用环境变量配置它 serve:

Env-var 必填 描述
MESH_TOKEN 是 共享秘密。客户端必须发送 Authorization: Bearer <MESH_TOKEN>如果未设置, 全部 /v1/* 请求返回 401 (故障关闭)。
MESH_CORS_ORIGIN no 允许CORS的浏览器来源。默认为 http://localhost:8766 (从来没有 *).

/health 对活性探测保持打开状态(无身份验证)。这是一个单一的共享 承载秘密——没有每个代理的密钥、作用域或轮换。

用例:FormBridge

填写费用表的人力资源代理发现财务代理:

import { AgentRegistry, DiscoveryEngine } from 'agentkit-mesh';

const registry = new AgentRegistry();

// Agents register themselves
registry.register({
  name: 'finance-agent',
  description: 'Budget management and expense approval',
  capabilities: ['budget', 'cost_center', 'expense_approval'],
  endpoint: 'http://localhost:4002/task',
});

// HR agent discovers who can help with budget fields
const discovery = new DiscoveryEngine();
const results = discovery.discover('budget cost center', registry);
// → [{ agent: finance-agent, score: 0.67, matchedCapabilities: ['budget', 'cost', 'center'] }]

看 示例/ 一个可运行的演示。

发现:关键字/标记重叠匹配

Discovery仅以普通关键字/标记重叠匹配的形式提供,没有 嵌入模型或语义搜索。 DiscoveryEngine.discover() 标记 查询,根据每个代理中出现的查询令牌的分数对其进行评分 description+能力,并返回按该分数排名的匹配结果。 资源需求过滤(方案/主机感知URI匹配)可以进一步 狭窄的结果。这就是匹配算法的全部内容。

程序化API

import { AgentRegistry, DiscoveryEngine, DelegationClient, createServer } from 'agentkit-mesh';

所有类都导出为直接使用,无需MCP服务器层。

🤝 贡献

欢迎投稿!分叉仓库,进行更改,然后打开一个pull请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。

🧰 AgentKit 生态 系统

项目 描述
Agent Lens AI代理的可观察性和审计跟踪
传说 跨代理记忆和课程共享
代理门 人在环审批网关
模板桥 代理-人类混合模式形式
代理 测试与评估框架
agentkit网 代理发现和委派 ⬅️ 你来了
agentkit-cli 统一CLI编排器
agentkit护栏 反应性政策护栏

许可证

麻省理工学院 ©AgentKit AI