耻辱的mcp
一个共享的信号层,允许多个AI编码代理在不相互通信的情况下进行协调。独立构建 主控程序 服务器。
为什么存在
多代理人工智能系统很昂贵,因为每个代理都会读取其他代理所说的一切。Anthropic自己的生产多智能体研究系统 使用的令牌大约是聊天交互的15倍,令牌使用本身解释了BrowseComp浏览评估中80%的性能差异。成本不是每个代理执行的认知工作。成本是每个代理在完成其部分工作之前所消耗的累积对话历史。
这是一个结构性问题,而不是实施缺陷。在直接消息传递协调中,N代理管道中的每个代理读取每个前任生成的内容。每次运行的代理间令牌量随代理计数呈二次方增长。Anthropic明确指出了这一限制:“要求所有代理共享相同上下文或涉及代理之间许多依赖关系的领域不适合当今的多代理系统。”编码就是其中之一。
效果是可以衡量的。同伴 耻辱的mcp基准 该项目将每个API调用分解为五个令牌类别(内容传递、机制开销、协调指令、任务推理、系统标识),并在配对试验中应用bootstrap置信区间、Wilcoxon签名秩测试和TOST等价测试。该框架针对Anthropic、OpenAI或模拟提供者运行。API在Claude Sonnet上的花费约为20至40美元。
羞辱性mcp用紧凑、衰减、区域键控的信号取代了完整的对话切换。每个代理都会阅读其工作地点附近的相关内容,而不是之前内容的完整记录。代理间令牌量与代理计数呈线性关系,而不是二次关系。成本曲线变平,编码等依赖性强的领域变得适用于多智能体协调。
这是一个协调原语,不是框架,不是编排器,也不是代理运行时。它做了一件事:它让你的代理人留下痕迹,而不是记录。
什么是耻辱?
在蚁群中,蚂蚁协调而不直接交流。一只蚂蚁在小路上留下信息素痕迹;其他蚂蚁会感觉到踪迹并跟随它。强壮的踪迹会吸引更多的蚂蚁。未加固的痕迹会蒸发。环境本身成为了沟通渠道——没有消息,没有中央协调器。
stigmergy mcp 将这种模式引入AI编码代理。代理在文件路径和模块名称上留下键入的痕迹:
- 吸引力 --“这条路走得很好”(将特工吸引到一个地区)
- 危险 --“这里有东西坏了”(警告特工远离)
- 信息 --中性注释(面向未来访问者的上下文)
随着时间的推移,痕迹呈指数级衰减,因此陈旧的信号会自然消失,而新鲜、强化的信号则占主导地位。当多个AI代理在同一个代码库上工作时,它们可以感知彼此的跟踪并适应——而无需消息总线、队列或共享状态协议。
快速开始
从npm安装
npm install stigmergy-mcp或从源代码构建
git clone https://github.com/calabamatex/stigmergy-mcp.git
cd stigmergy-mcp
npm install && npm run build添加为MCP服务器
# From npm
claude mcp add stigmergy -- node node_modules/stigmergy-mcp/dist/src/index.js
# From source
claude mcp add stigmergy -- node dist/src/index.js验证
npm run inspect # Opens MCP Inspector — confirm all 4 tools appear数据库
痕迹持续存在 ./stigmergy.db 默认情况下。覆盖:
STIGMERGY_DB_PATH=/path/to/traces.db # Custom file path
STIGMERGY_DB_PATH=:memory: # Ephemeral (no persistence)数据库在首次运行时自动创建。
工具
stigmergy mcp公开了4个mcp工具。任何兼容MCP的客户端都可以调用它们。
存款_追踪
在共享环境中留下痕迹。
| 参数 | 类型 | 默认值 | 说明 | ||
|---|---|---|---|---|---|
area | string | 必填 | 文件路径或模块名称(例如。 "src/auth/session.ts") | ||
action | string | 必填 | 发生了什么(例如。 "refactored session management") | ||
agent_id | string | 必填 | 哪个代理正在留下此跟踪 | ||
trace_type | "attraction" | "danger" | "info" | 必填 | 信号类型 |
intensity | 数字(0-1) | 0.5 | 信号强度 | ||
decay_hours | 数字 | 24 | 直到强度达到37%的小时 | ||
tags | string\[\] | \[\] | 可搜索标签 | ||
metadata | object | {} | 任意JSON有效负载 |
sense_environment
读取给定区域附近的痕迹。只读。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
area | string | 必需 | 要扫描的文件路径或前缀 |
radius | integer | 2 | 要走过多少路径段进行匹配 |
min_intensity | 数字(0-1) | 0.05 | 要包括的最小有效强度 |
trace_type | enum | 可选 | 按类型筛选 |
tags | string\[\] | 可选 | 筛选包含所有这些标签的跟踪 |
agent_id | string | 可选 | 筛选特定代理的跟踪 |
半径是如何工作的: 这 radius 参数通过向上遍历路径层次结构来控制搜索的范围。给定 area="src/auth/session.ts":
radius=0→ 前缀src/auth/session.ts/(只匹配子项,不匹配文件本身)radius=1→ 前缀src/auth/(同一目录中的兄弟文件)radius=2→ 前缀src/(更广泛的区域)
返回按有效强度(降序)排序的轨迹。
加强种族
加强或削弱现有的痕迹。
| 参数 | 类型 | 说明 |
|---|---|---|
trace_id | string | 要加强的跟踪ID |
delta | 数字(-1比1) | 正表示加强,负表示削弱 |
get_gradient
返回大范围内最强的信号——“我应该看哪个方向?”工具。使用此功能进行探索和定位。不像 sense_environment (读取特定文件附近的痕迹), get_gradient 扫描宽前缀并返回按类型分组的顶部信号。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
area | string | 必填 | 广域前缀(例如。 "src/") |
limit | integer | 5 | 要返回的最大跟踪数 |
按有效强度返回前N个轨迹。这 by_type 分组仅包括顶部N内的迹线,而不是该区域中的所有迹线。
示例:多代理工作流
Agent A (refactoring auth):
→ deposit_trace(area: "src/auth/session.ts", action: "found XSS in session handler",
trace_type: "danger", intensity: 0.8, tags: ["security"])
Agent B (working nearby):
→ sense_environment(area: "src/auth/login.ts", radius: 1)
← sees danger trace on session.ts — avoids touching it, or fixes the issue
→ reinforce_trace(trace_id: "...", delta: 0.15) // confirms the danger
Agent C (new to the codebase):
→ get_gradient(area: "src/", limit: 5)
← sees strongest signal is a danger on src/auth/session.ts — investigates first跟踪生命周期
痕迹呈指数级衰减。任何点的有效强度:
effective = intensity * exp(-elapsed_hours / decay_hours)随着 decay_hours=2424小时后,痕迹保留了约37%的强度,48小时后保留了约14%的强度。短期警告(decay_hours=4)在几个小时内逐渐消失。长期记忆(decay_hours=168)持续约一周。
有效强度低于1%的痕迹在以下情况下会自动修剪 deposit() 电话。他们也看不见 sense_environment 和 get_gradient 低于各自的阈值,因此过期的跟踪永远不会污染查询结果。
程序化使用
该包导出存储和服务器,以嵌入到您自己的代码中:
import { TraceStore } from 'stigmergy-mcp/store';
import { createServer, startServer } from 'stigmergy-mcp/server';
// Use the store directly
const store = new TraceStore('/path/to/traces.db');
const trace = store.deposit({ area: 'src/foo.ts', action: 'refactored', agent_id: 'my-agent', trace_type: 'info', intensity: 0.5, decay_hours: 24, tags: [], metadata: {} });
// Or create/start an MCP server with a custom store
const server = createServer(store);看 建筑.md 内部设计细节和扩展点。
基准测试
基准测试工具——将刺激能量群与单个代理和消息传递基线进行比较——位于一个单独的存储库中: calabamatex/耻辱mcp基准.
发展
npm run build # Compile TypeScript
npm run dev # Compile in watch mode
npm test # Run all tests
npm run test:coverage # Run tests with coverage
npm run loc # Check source/test LOC and file count
npm run inspect # Launch MCP Inspector许可证
麻省理工学院
