agentmesh-ai 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/GUIDE.md ADDED
@@ -0,0 +1,478 @@
1
+ # AgentMesh 使用教程
2
+
3
+ > 让你和同事的 AI 编码助手(Claude Code、Cursor、Copilot 等)共享记忆、直接对话。
4
+
5
+ ---
6
+
7
+ ## 目录
8
+
9
+ 1. [前置条件](#1-前置条件)
10
+ 2. [第一个人:初始化项目](#2-第一个人初始化项目)
11
+ 3. [配置你的 AI 工具](#3-配置你的-ai-工具)
12
+ 4. [验证是否生效](#4-验证是否生效)
13
+ 5. [同事加入](#5-同事加入)
14
+ 6. [开启对话空间(实时讨论)](#6-开启对话空间实时讨论)
15
+ 7. [日常使用指南](#7-日常使用指南)
16
+ 8. [完整场景演示](#8-完整场景演示)
17
+ 9. [常见问题](#9-常见问题)
18
+
19
+ ---
20
+
21
+ ## 1. 前置条件
22
+
23
+ 你需要:
24
+ - **Node.js 20 或以上** — 终端输入 `node --version` 检查
25
+ - **一个 AI 编码工具** — Claude Code、Cursor、Windsurf 中的任何一个
26
+ - **一个项目文件夹** — 你和同事一起工作的那个项目
27
+
28
+ 不需要:
29
+ - 不需要注册任何账号
30
+ - 不需要配置服务器
31
+ - 不需要 API Key
32
+
33
+ ---
34
+
35
+ ## 2. 第一个人:初始化项目
36
+
37
+ 在你的项目文件夹里打开终端,运行:
38
+
39
+ ```bash
40
+ npx agentmesh-ai init
41
+ ```
42
+
43
+ 它会问你几个问题:
44
+
45
+ ```
46
+ ? Project name? (输入你的项目名)
47
+ ? Your name? (输入你的名字,比如"小明")
48
+ ? Your role? (选择你的角色,比如"Backend Developer")
49
+ ? Your AI coding tool? (选择你用的工具,比如"Claude Code")
50
+ ```
51
+
52
+ 完成后,你的项目里会多一个 `.agenthub/` 文件夹:
53
+
54
+ ```
55
+ 你的项目/
56
+ ├── .agenthub/
57
+ │ ├── hub.yaml ← 项目信息
58
+ │ ├── memory/
59
+ │ │ └── xiaoming-claude-code.yaml ← 你的 AI 的记忆文件
60
+ │ └── conversations/ ← 对话记录(以后会用到)
61
+ ├── src/
62
+ └── ...你的项目文件
63
+ ```
64
+
65
+ **重要:把 `.agenthub/` 提交到 Git,这样同事才能看到。**
66
+
67
+ ```bash
68
+ git add .agenthub/
69
+ git commit -m "初始化 agentmesh 共享记忆"
70
+ git push
71
+ ```
72
+
73
+ ---
74
+
75
+ ## 3. 配置你的 AI 工具
76
+
77
+ 运行:
78
+
79
+ ```bash
80
+ npx agentmesh-ai setup
81
+ ```
82
+
83
+ 它会自动检测你电脑上安装了哪些 AI 工具,然后生成对应的配置文件:
84
+
85
+ ```
86
+ 🔍 检测到你使用的 AI 工具:
87
+ ✓ Claude Code
88
+ ✓ Cursor
89
+
90
+ ? 要为哪些工具配置 AgentMesh?
91
+ [x] Claude Code
92
+ [x] Cursor
93
+
94
+ ✅ 已写入 .claude/mcp.json
95
+ ✅ 已写入 .cursor/mcp.json
96
+ ```
97
+
98
+ ### 如果 setup 没有自动识别
99
+
100
+ 你也可以手动配置。
101
+
102
+ **Claude Code** — 创建 `.claude/mcp.json`:
103
+
104
+ ```json
105
+ {
106
+ "mcpServers": {
107
+ "agentmesh": {
108
+ "command": "npx",
109
+ "args": ["-y", "agentmesh-ai", "mcp"],
110
+ "env": {
111
+ "AGENTHUB_AGENT_ID": "你的agent-id"
112
+ }
113
+ }
114
+ }
115
+ }
116
+ ```
117
+
118
+ **Cursor** — 创建 `.cursor/mcp.json`,内容一样。
119
+
120
+ agent-id 就是 init 时生成的那个(看 `.agenthub/hub.yaml` 里的 `id` 字段)。
121
+
122
+ ### 重启你的 AI 工具
123
+
124
+ **配置完后必须重启。** 关掉 Claude Code / Cursor,重新打开。
125
+
126
+ ---
127
+
128
+ ## 4. 验证是否生效
129
+
130
+ 重启 AI 工具后,对它说:
131
+
132
+ ```
133
+ 读一下共享记忆
134
+ ```
135
+
136
+ 如果配置正确,AI 会调用 `read_memory` 工具,返回类似这样的内容:
137
+
138
+ ```
139
+ # Shared Memory (0 entries)
140
+
141
+ No shared memories found.
142
+ ```
143
+
144
+ 这说明 AgentMesh 已经在工作了,只是还没有记录任何知识。
145
+
146
+ 现在试试让 AI 记点东西:
147
+
148
+ ```
149
+ 帮我记录一下:我们项目用的是 TypeScript + Next.js + PostgreSQL
150
+ ```
151
+
152
+ AI 会调用 `write_memory`,然后你在 `.agenthub/memory/` 里就能看到记录了。
153
+
154
+ ---
155
+
156
+ ## 5. 同事加入
157
+
158
+ ### 同事要做的事(3 步,2 分钟)
159
+
160
+ **第一步:拉取代码**
161
+
162
+ ```bash
163
+ git pull
164
+ ```
165
+
166
+ 拉完后他就有了 `.agenthub/` 文件夹和你的记忆。
167
+
168
+ **第二步:注册自己**
169
+
170
+ ```bash
171
+ npx agentmesh-ai init
172
+ ```
173
+
174
+ 因为 `.agenthub/` 已经存在,它会问是否重新初始化——选"是",然后填写同事自己的信息。
175
+
176
+ 或者,手动操作也很简单:
177
+
178
+ 1. 在 `.agenthub/hub.yaml` 的 `agents` 列表里加一条:
179
+
180
+ ```yaml
181
+ agents:
182
+ - id: xiaoming-claude-code # 你(已有)
183
+ display_name: 小明
184
+ role: Backend Developer
185
+ tool: claude-code
186
+ - id: xiaohong-cursor # 同事(新加)
187
+ display_name: 小红
188
+ role: Frontend Developer
189
+ tool: cursor
190
+ ```
191
+
192
+ 2. 创建同事的记忆文件 `.agenthub/memory/xiaohong-cursor.yaml`:
193
+
194
+ ```yaml
195
+ agent: xiaohong-cursor
196
+ role: Frontend Developer
197
+ tool: cursor
198
+ last_active: "2026-04-02T00:00:00Z"
199
+ entries: []
200
+ ```
201
+
202
+ **第三步:配置 MCP**
203
+
204
+ ```bash
205
+ npx agentmesh-ai setup
206
+ ```
207
+
208
+ 然后重启 AI 工具。
209
+
210
+ **完成。** 同事的 AI 现在可以读到你的所有记忆了。
211
+
212
+ ### 同事验证
213
+
214
+ 让同事对他的 AI 说:
215
+
216
+ ```
217
+ 读一下共享记忆
218
+ ```
219
+
220
+ 应该能看到你之前记录的所有知识。
221
+
222
+ ---
223
+
224
+ ## 6. 开启对话空间(实时讨论)
225
+
226
+ 日常工作中,共享记忆通过 Git 同步就够了。但有些时候你需要实时讨论——比如选技术方案、定接口格式、协调大改动。
227
+
228
+ ### 启动对话空间
229
+
230
+ 任何一个人在终端里运行:
231
+
232
+ ```bash
233
+ npx agentmesh-ai serve
234
+ ```
235
+
236
+ 会显示:
237
+
238
+ ```
239
+ 🚀 对话空间已启动
240
+
241
+ Local: ws://localhost:4800
242
+ Network: ws://192.168.1.100:4800
243
+ Key: abc123
244
+
245
+ 把以下信息发给队友:
246
+ AGENTHUB_SERVER_URL=ws://192.168.1.100:4800
247
+ AGENTHUB_SERVER_KEY=abc123
248
+ ```
249
+
250
+ ### 其他人连入
251
+
252
+ 其他人在自己的 MCP 配置(`.claude/mcp.json` 或 `.cursor/mcp.json`)里加上对话空间地址:
253
+
254
+ ```json
255
+ {
256
+ "mcpServers": {
257
+ "agentmesh": {
258
+ "command": "npx",
259
+ "args": ["-y", "agentmesh-ai", "mcp"],
260
+ "env": {
261
+ "AGENTHUB_AGENT_ID": "xiaohong-cursor",
262
+ "AGENTHUB_SERVER_URL": "ws://192.168.1.100:4800",
263
+ "AGENTHUB_SERVER_KEY": "abc123"
264
+ }
265
+ }
266
+ }
267
+ }
268
+ ```
269
+
270
+ 然后重启 AI 工具。
271
+
272
+ **注意:** 所有人必须在同一个局域网内(同一个 WiFi 或公司网络)。如果是远程协作,启动 serve 的人需要用 ngrok 等工具做内网穿透。
273
+
274
+ ### 发起讨论
275
+
276
+ 对你的 AI 说:
277
+
278
+ ```
279
+ 帮我和团队讨论一下数据库用什么
280
+ ```
281
+
282
+ AI 会自动:
283
+ 1. 发消息到对话空间
284
+ 2. 等待其他人的 AI 回复
285
+ 3. 多轮讨论
286
+ 4. 达成共识后记录结论
287
+
288
+ **你只需要说这一句话,后面 AI 自动驱动。**
289
+
290
+ 另一边的同事不需要做任何事——他的 AI 读记忆时会看到讨论提醒,自动参与。
291
+
292
+ ### 关闭对话空间
293
+
294
+ 讨论完了,在运行 `serve` 的终端按 `Ctrl+C`。对话记录会自动保存到 `.agenthub/conversations/` 目录。
295
+
296
+ ---
297
+
298
+ ## 7. 日常使用指南
299
+
300
+ ### AI 会自动做的事
301
+
302
+ 配置好之后,你不需要专门操作 AgentMesh。AI 会自动:
303
+
304
+ - **开始工作前** — 读取共享记忆,了解项目全貌
305
+ - **写完代码后** — 把重要信息记录到共享记忆(接口、数据模型、技术选型)
306
+ - **遇到分歧时** — 提醒你有讨论需要参与
307
+ - **需要投票时** — 弹出选择框让你决策
308
+
309
+ ### 你需要做的事
310
+
311
+ - **定期 git push** — 这样同事的 AI 才能读到你的最新记忆
312
+ - **定期 git pull** — 这样你的 AI 才能读到同事的最新记忆
313
+ - **重要决策时确认** — AI 会问你"是否记录为团队共识",确认后才生效
314
+
315
+ ### 三种记忆级别
316
+
317
+ | 级别 | 含义 | 谁能改 |
318
+ |------|------|--------|
319
+ | auto(自动) | 日常知识,AI 自动记录 | 任何人 |
320
+ | proposal(提案) | 重要决策,等待确认 | 任何人(会有警告) |
321
+ | protected(共识) | 团队投票通过的正式约定 | 只有发起人 |
322
+
323
+ AI 记录日常信息时不会打扰你。只有记录重要决策时才会先问你确认。
324
+
325
+ ### 敏感信息保护
326
+
327
+ AI 在记录知识时会自动扫描敏感信息。如果检测到 API Key、密码、私钥等内容,会直接拦截,不会写入共享记忆。
328
+
329
+ ### 常用命令
330
+
331
+ ```bash
332
+ # 查看项目共享记忆的状态
333
+ npx agentmesh-ai status
334
+
335
+ # 查看所有共享记忆
336
+ npx agentmesh-ai memory
337
+
338
+ # 搜索特定信息
339
+ npx agentmesh-ai memory -s "数据库"
340
+
341
+ # 启动对话空间
342
+ npx agentmesh-ai serve
343
+
344
+ # 查看帮助
345
+ npx agentmesh-ai --help
346
+ ```
347
+
348
+ ---
349
+
350
+ ## 8. 完整场景演示
351
+
352
+ ### 场景:小明和小红一起做电商项目
353
+
354
+ **Day 1 — 小明初始化项目并开始写后端**
355
+
356
+ ```bash
357
+ # 小明初始化
358
+ npx agentmesh-ai init
359
+ npx agentmesh-ai setup
360
+ git add .agenthub/ && git commit -m "init agentmesh" && git push
361
+ ```
362
+
363
+ 小明对 Claude Code 说:"帮我搭建 Express + TypeScript 的后端项目,写一个用户注册接口"
364
+
365
+ Claude Code 写完代码后,自动记录到共享记忆:
366
+ - 技术选型:Express 5 + TypeScript + Prisma
367
+ - 用户接口:POST /api/users
368
+ - 数据模型:User { id, email, name, role }
369
+ - API 返回格式:{ data, error, code }
370
+
371
+ 小明提交代码和记忆:
372
+
373
+ ```bash
374
+ git add . && git commit -m "feat: 用户注册接口" && git push
375
+ ```
376
+
377
+ **Day 3 — 小红加入做前端**
378
+
379
+ ```bash
380
+ git clone <项目地址>
381
+ npx agentmesh-ai init # 注册自己
382
+ npx agentmesh-ai setup # 配置 Cursor 的 MCP
383
+ # 重启 Cursor
384
+ ```
385
+
386
+ 小红对 Cursor 说:"帮我做一个用户注册页面"
387
+
388
+ Cursor 自动读取共享记忆,知道:
389
+ - 后端接口是 POST /api/users
390
+ - 返回格式是 { data, error, code }
391
+ - 用户字段有 email, name
392
+
393
+ 直接按正确的格式写前端代码。**不需要问小明任何事情。**
394
+
395
+ **Day 3 晚上 — 需要讨论 UI 风格**
396
+
397
+ 小明启动对话空间:
398
+
399
+ ```bash
400
+ npx agentmesh-ai serve
401
+ # 把 URL 和 Key 发给小红
402
+ ```
403
+
404
+ 小红在 MCP 配置里加上对话空间地址,重启 Cursor。
405
+
406
+ 小红对 Cursor 说:"帮我和团队讨论一下 UI 用什么组件库和颜色"
407
+
408
+ 两个 AI 自动讨论,最后达成共识:shadcn/ui + Indigo 主色 + 8px 圆角。
409
+
410
+ 结论自动写入共享记忆,标记为 protected。以后所有 AI 都会遵守这个规范。
411
+
412
+ 对话空间用完了,Ctrl+C 关掉。
413
+
414
+ **Day 7 — 小王加入做移动端**
415
+
416
+ ```bash
417
+ git clone <项目地址>
418
+ npx agentmesh-ai init
419
+ npx agentmesh-ai setup
420
+ ```
421
+
422
+ 小王的 AI 读取共享记忆后,立刻知道:
423
+ - 技术栈:Express + PostgreSQL + Next.js
424
+ - 所有接口定义和数据模型
425
+ - UI 规范:Indigo 色 + shadcn/ui
426
+ - API 格式:{ data, error, code }
427
+
428
+ 小王可以直接开始写移动端代码,不需要任何人给他讲解。
429
+
430
+ ---
431
+
432
+ ## 9. 常见问题
433
+
434
+ ### Q: 不配置对话空间也能用吗?
435
+
436
+ **能。** 共享记忆通过 Git 同步,不需要对话空间。对话空间只在需要实时讨论时才用。
437
+
438
+ ### Q: 我用 Copilot,不支持 MCP 怎么办?
439
+
440
+ `npx agentmesh-ai setup` 会自动生成 `.github/copilot-instructions.md`,告诉 Copilot 去读 `.agenthub/` 的文件。体验没有 MCP 那么丝滑,但基本可用。
441
+
442
+ ### Q: AI 记录了错误的信息怎么办?
443
+
444
+ 直接编辑 `.agenthub/memory/` 里对应的 YAML 文件,删掉或修改错误的条目。然后 git push。
445
+
446
+ ### Q: Git 会冲突吗?
447
+
448
+ 不会。每个人只写自己的文件(`xiaoming-claude-code.yaml`),不同人写不同文件,Git 不会冲突。
449
+
450
+ ### Q: 对话空间的数据会丢吗?
451
+
452
+ 对话空间关闭时,讨论记录自动保存到 `.agenthub/conversations/`。讨论的结论也会写入共享记忆。即使对话空间关了,重要的信息都不会丢。
453
+
454
+ ### Q: 远程办公怎么用对话空间?
455
+
456
+ 启动 serve 的人需要把端口暴露到公网。最简单的方式是用 ngrok:
457
+
458
+ ```bash
459
+ # 终端 1:启动对话空间
460
+ npx agentmesh-ai serve
461
+
462
+ # 终端 2:用 ngrok 暴露端口
463
+ ngrok tcp 4800
464
+ ```
465
+
466
+ ngrok 会生成一个公网地址,发给远程同事就行。
467
+
468
+ ### Q: 可以同时在多个项目里用吗?
469
+
470
+ 可以。每个项目有自己独立的 `.agenthub/` 目录,互不影响。
471
+
472
+ ### Q: 怎么升级到新版本?
473
+
474
+ ```bash
475
+ npx agentmesh-ai@latest init # 用最新版
476
+ ```
477
+
478
+ npm 会自动下载最新版本。
@@ -74,9 +74,9 @@ export async function setupCommand() {
74
74
  }
75
75
  const mcpConfig = {
76
76
  mcpServers: {
77
- agenthub: {
77
+ agentmesh: {
78
78
  command: 'npx',
79
- args: ['-y', 'agenthub', 'mcp'],
79
+ args: ['-y', 'agentmesh-ai', 'mcp'],
80
80
  env: {
81
81
  AGENTHUB_AGENT_ID: agentId,
82
82
  },
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- /**
2
- * Agent ID generation utilities.
3
- */
4
1
  /** Generate a slug-style agent ID from display name and tool. */
5
2
  export declare function generateAgentId(displayName: string, tool: string): string;
6
3
  //# sourceMappingURL=id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIzE"}
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAKA,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CASzE"}
package/dist/utils/id.js CHANGED
@@ -1,18 +1,23 @@
1
1
  /**
2
2
  * Agent ID generation utilities.
3
3
  */
4
+ import { randomBytes } from 'node:crypto';
4
5
  /** Generate a slug-style agent ID from display name and tool. */
5
6
  export function generateAgentId(displayName, tool) {
6
7
  const namePart = slugify(displayName);
7
8
  const toolPart = slugify(tool);
8
- return `${namePart}-${toolPart}`;
9
+ // If name part is empty (e.g. all Chinese characters got transliterated to nothing),
10
+ // use a short random fallback
11
+ const safeName = namePart || `user-${randomBytes(3).toString('hex')}`;
12
+ return `${safeName}-${toolPart}`;
9
13
  }
10
- /** Convert a string to a URL/filename-safe slug. */
14
+ /** Convert a string to a URL/filename-safe slug. Supports non-Latin characters. */
11
15
  function slugify(str) {
12
16
  return str
13
17
  .toLowerCase()
14
18
  .trim()
15
- .replace(/[^\w\s-]/g, '') // remove non-word chars (except spaces and hyphens)
19
+ // Keep: word chars (any language), spaces, hyphens, digits
20
+ .replace(/[^\p{L}\p{N}\s-]/gu, '')
16
21
  .replace(/[\s_]+/g, '-') // replace spaces/underscores with hyphens
17
22
  .replace(/-+/g, '-') // collapse multiple hyphens
18
23
  .replace(/^-|-$/g, ''); // trim leading/trailing hyphens
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAY;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,oDAAoD;AACpD,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG;SACP,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,oDAAoD;SAC7E,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAE,0CAA0C;SACnE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAM,4BAA4B;SACrD,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAG,gCAAgC;AAC9D,CAAC"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAY;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B,qFAAqF;IACrF,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAEtE,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,mFAAmF;AACnF,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG;SACP,WAAW,EAAE;SACb,IAAI,EAAE;QACP,2DAA2D;SAC1D,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;SACjC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAG,0CAA0C;SACpE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAO,4BAA4B;SACtD,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAI,gCAAgC;AAC/D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentmesh-ai",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Shared memory & conversation protocol for AI coding agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",