openclaw-opincer 0.2.16 → 0.2.18

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.
@@ -2,7 +2,7 @@
2
2
  * channel.ts — Opincer channel plugin (WebSocket inbound, HTTP outbound)
3
3
  * Adapted for Opincer protocol: REGISTER → AUTH → receive envelopes
4
4
  *
5
- * Key differences from openclaw-pincer:
5
+ * Key differences from openclaw-opincer:
6
6
  * - WS URL: /api/v1/agents/{agent_id}/ws (not /ws?agent_id=)
7
7
  * - Groups API: /api/v1/agents/{id}/groups (not /api/v1/projects)
8
8
  * - Room WS: /api/v1/rooms/{room_id}/ws?api_key= (same)
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkKH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAusBD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;8BAkBD,GAAG;+BAIF,GAAG,aAAa,MAAM;;;;;4BAGnB,GAAG;;;;wBA0BP,GAAG;;;;CAkB5B,CAAC"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAuKH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAwuBD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;8BAkBD,GAAG;+BAIF,GAAG,aAAa,MAAM;;;;;4BAGnB,GAAG;;;;wBA0BP,GAAG;;;;CAkB5B,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * channel.ts — Opincer channel plugin (WebSocket inbound, HTTP outbound)
3
3
  * Adapted for Opincer protocol: REGISTER → AUTH → receive envelopes
4
4
  *
5
- * Key differences from openclaw-pincer:
5
+ * Key differences from openclaw-opincer:
6
6
  * - WS URL: /api/v1/agents/{agent_id}/ws (not /ws?agent_id=)
7
7
  * - Groups API: /api/v1/agents/{id}/groups (not /api/v1/projects)
8
8
  * - Room WS: /api/v1/rooms/{room_id}/ws?api_key= (same)
@@ -18,6 +18,10 @@ import { randomUUID } from "crypto";
18
18
  import { readFileSync, writeFileSync, mkdirSync, existsSync } from "fs";
19
19
  import { homedir } from "os";
20
20
  import { join } from "path";
21
+ // ── Skill version — bump this when skill.md API changes ────────────────────
22
+ const SKILL_VERSION = "0.2.18";
23
+ /** Per-agent set tracking which skill versions have already been hinted this process lifetime */
24
+ const skillHintedAgents = new Map(); // agentId → skill version last hinted
21
25
  // ── Context compression settings ────────────────────────────────────────────
22
26
  /** Number of recent raw messages to attach as context per dispatch */
23
27
  const CONTEXT_MSG_COUNT = 10;
@@ -52,7 +56,7 @@ async function fetchRecentMessages(config, roomId, limit = 50) {
52
56
  try {
53
57
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/rooms/${roomId}/messages?limit=${limit}`;
54
58
  const res = await fetch(url, {
55
- headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId },
59
+ headers: { "X-API-Key": config.token },
56
60
  });
57
61
  if (!res.ok)
58
62
  return [];
@@ -84,7 +88,7 @@ async function generateSummary(config, roomId, messages) {
84
88
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/rooms/${roomId}/summary`;
85
89
  const res = await fetch(url, {
86
90
  method: "POST",
87
- headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId, "Content-Type": "application/json" },
91
+ headers: { "X-API-Key": config.token, "Content-Type": "application/json" },
88
92
  body: JSON.stringify({ messages }),
89
93
  });
90
94
  if (res.ok) {
@@ -173,7 +177,7 @@ async function httpPost(config, path, body) {
173
177
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1${path}`;
174
178
  const res = await fetch(url, {
175
179
  method: "POST",
176
- headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId, "Content-Type": "application/json" },
180
+ headers: { "X-API-Key": config.token, "Content-Type": "application/json" },
177
181
  body: JSON.stringify(body),
178
182
  });
179
183
  if (!res.ok)
@@ -184,7 +188,7 @@ async function fetchAgentGroups(config) {
184
188
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/agents/${config.agentId}/groups`;
185
189
  try {
186
190
  const res = await fetch(url, {
187
- headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId, "User-Agent": "openclaw-opincer/0.1" },
191
+ headers: { "X-API-Key": config.token, "User-Agent": "openclaw-opincer/0.1" },
188
192
  });
189
193
  if (!res.ok)
190
194
  return [];
@@ -198,6 +202,30 @@ async function fetchAgentGroups(config) {
198
202
  return [];
199
203
  }
200
204
  }
205
+ // ── Message dedup: prevent processing the same message twice ──────────────
206
+ // Shared across room WS and agent WS to catch duplicates from any source.
207
+ const processedMessageIds = new Set();
208
+ const DEDUP_MAX_SIZE = 2000;
209
+ function isMessageProcessed(msgId) {
210
+ if (!msgId)
211
+ return false;
212
+ if (processedMessageIds.has(msgId))
213
+ return true;
214
+ processedMessageIds.add(msgId);
215
+ // Evict oldest entries when set grows too large
216
+ if (processedMessageIds.size > DEDUP_MAX_SIZE) {
217
+ let count = 0;
218
+ for (const v of processedMessageIds) {
219
+ if (count++ < DEDUP_MAX_SIZE / 2) {
220
+ processedMessageIds.delete(v);
221
+ }
222
+ else {
223
+ break;
224
+ }
225
+ }
226
+ }
227
+ return false;
228
+ }
201
229
  // Subscribe to a single room WebSocket and dispatch messages
202
230
  function connectRoomWs(params) {
203
231
  const { config, ctx, roomId, isDM, signal } = params;
@@ -217,6 +245,12 @@ function connectRoomWs(params) {
217
245
  if (msg.type !== "room.message")
218
246
  return;
219
247
  const payload = msg.data ?? msg.payload ?? {};
248
+ const msgId = payload.id ?? msg.id ?? "";
249
+ // Dedup: skip if we already processed this message
250
+ if (isMessageProcessed(msgId)) {
251
+ console.log(`[openclaw-opincer] 🔁 Dedup: skipping already-processed message ${msgId.slice(0, 8)}`);
252
+ return;
253
+ }
220
254
  const sender = payload.sender_agent_id ?? "unknown";
221
255
  const content = payload.content ?? "";
222
256
  if (sender === config.agentId || !content)
@@ -250,7 +284,7 @@ function connectRoomWs(params) {
250
284
  // Subscribe to all agent groups, refresh every GROUP_REFRESH_INTERVAL ms
251
285
  function startGroupSubscriptions(params) {
252
286
  const { config, ctx, signal } = params;
253
- const GROUP_REFRESH_MS = 60000;
287
+ const GROUP_REFRESH_MS = 60_000;
254
288
  const subscribedRooms = new Set();
255
289
  async function refresh() {
256
290
  if (signal.aborted)
@@ -275,7 +309,7 @@ function connectWs(params) {
275
309
  function connect() {
276
310
  if (signal.aborted)
277
311
  return;
278
- const ws = new WebSocket(wsUrl(config), { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
312
+ const ws = new WebSocket(wsUrl(config), { headers: { "X-API-Key": config.token } });
279
313
  ws.on("open", () => {
280
314
  retryMs = 1000;
281
315
  console.log("[openclaw-opincer] WebSocket connected, sending REGISTER + AUTH");
@@ -372,6 +406,11 @@ function handleMessage(config, ctx, msg) {
372
406
  const text = payload.text ?? "";
373
407
  if (!text)
374
408
  return;
409
+ const msgId = msg.id ?? payload.id ?? "";
410
+ if (isMessageProcessed(msgId)) {
411
+ console.log(`[openclaw-opincer] 🔁 Dedup: skipping DM ${msgId.slice(0, 8)}`);
412
+ return;
413
+ }
375
414
  console.log(`[openclaw-opincer] 💬 DM from ${fromId.slice(0, 8)}: ${text.slice(0, 60)}`);
376
415
  dispatchToAgent(config, ctx, runtime, fromId, text, undefined);
377
416
  return;
@@ -421,7 +460,7 @@ async function notifyProjectRoom(config, projectId, taskId, taskTitle, assigneeN
421
460
  try {
422
461
  // Fetch project to get room_id
423
462
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/projects/${projectId}`;
424
- const res = await fetch(url, { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
463
+ const res = await fetch(url, { headers: { "X-API-Key": config.token } });
425
464
  if (!res.ok)
426
465
  return;
427
466
  const project = await res.json();
@@ -450,7 +489,7 @@ async function fetchRoomProject(config, roomId) {
450
489
  }
451
490
  try {
452
491
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/projects`;
453
- const res = await fetch(url, { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
492
+ const res = await fetch(url, { headers: { "X-API-Key": config.token } });
454
493
  if (!res.ok)
455
494
  return null;
456
495
  const data = await res.json();
@@ -468,7 +507,7 @@ async function fetchRoomProject(config, roomId) {
468
507
  async function fetchProjectTaskSummary(config, projectId) {
469
508
  try {
470
509
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/projects/${projectId}/tasks`;
471
- const res = await fetch(url, { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
510
+ const res = await fetch(url, { headers: { "X-API-Key": config.token } });
472
511
  if (!res.ok)
473
512
  return null;
474
513
  const data = await res.json();
@@ -494,7 +533,7 @@ async function fetchProjectTaskSummary(config, projectId) {
494
533
  async function fetchRoomMembersWithStatus(config, roomId) {
495
534
  try {
496
535
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/rooms/${roomId}/members`;
497
- const res = await fetch(url, { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
536
+ const res = await fetch(url, { headers: { "X-API-Key": config.token } });
498
537
  if (!res.ok)
499
538
  return [];
500
539
  const data = await res.json();
@@ -503,7 +542,7 @@ async function fetchRoomMembersWithStatus(config, roomId) {
503
542
  id: m.agent_id ?? m.id ?? "",
504
543
  name: m.name ?? m.agent_name ?? m.display_name ?? m.id?.slice(0, 8) ?? "?",
505
544
  status: m.status ?? m.online_status ?? "offline",
506
- })).filter(m => Boolean(m.id));
545
+ })).filter(m => m.id && m.id !== config.agentId);
507
546
  }
508
547
  catch {
509
548
  return [];
@@ -656,9 +695,15 @@ function dispatchToAgent(config, ctx, runtime, senderId, text, roomId) {
656
695
  const [roomProject, roomMembers] = roomId
657
696
  ? await Promise.all([fetchRoomProject(config, roomId), fetchRoomMembersWithStatus(config, roomId)])
658
697
  : [null, []];
659
- // Capabilities hint — point agent to its skill doc instead of inlining everything.
660
- // The full API reference lives in the agent's local skill file (loaded once at startup),
661
- // so we only inject minimal dynamic context (room_id, project info, members) per message.
698
+ // Capabilities hint — inject dynamic room context every message.
699
+ // Skill doc hint is injected only once per agent per skill version (process lifetime).
700
+ // When skill version changes, all agents receive the hint again automatically.
701
+ const needsSkillHint = skillHintedAgents.get(config.agentId) !== SKILL_VERSION;
702
+ if (needsSkillHint)
703
+ skillHintedAgents.set(config.agentId, SKILL_VERSION);
704
+ const skillHintLine = needsSkillHint
705
+ ? `完整 API 参考见 https://www.opincer.com/skill.md(当前版本 ${SKILL_VERSION})。首次使用或版本更新时读取并保存到本地 skill 文件,后续无需重复读取。`
706
+ : `完整 API 参考请查阅你的 Opincer skill 文档(版本 ${SKILL_VERSION})。`;
662
707
  const capabilitiesHint = roomId
663
708
  ? [
664
709
  ``,
@@ -666,8 +711,6 @@ function dispatchToAgent(config, ctx, runtime, senderId, text, roomId) {
666
711
  `room_id: ${roomId}`,
667
712
  `api_base: ${baseUrl}/api/v1`,
668
713
  `api_key: ${config.token}`,
669
- `my_name_in_room: ${config.agentName}`,
670
- `my_agent_id: ${config.agentId}`,
671
714
  ...(roomProject
672
715
  ? [
673
716
  `project: ${roomProject.name} (project_id: ${roomProject.id})`,
@@ -677,14 +720,8 @@ function dispatchToAgent(config, ctx, runtime, senderId, text, roomId) {
677
720
  ]
678
721
  : [`project: none (非项目群,禁止创建任务)`]),
679
722
  ``,
680
- `完整 API 参考请查阅你的 Opincer skill 文档。如果还没有,请先读取 https://www.opincer.com/skill.md 并保存为 skill。`,
723
+ skillHintLine,
681
724
  `规则: 写操作必须先得到用户明确指令。非项目群内禁止创建任务。`,
682
- ``,
683
- `🌊 虾圈(Plaza)— 发帖/点赞/评论(使用 X-API-Key 认证,无需 JWT):`,
684
- ` 发帖: POST /api/plaza/posts Header: X-API-Key: <api_key>`,
685
- ` Body: {"post_type":"update","content":"...","media_urls":[],"tags":[]}`,
686
- ` 点赞(toggle): POST /api/plaza/posts/{id}/like Header: X-API-Key: <api_key>`,
687
- ` 帖子列表: GET /api/plaza/posts?limit=20&sort=latest|hot Header: X-API-Key: <api_key>`,
688
725
  ].join("\n")
689
726
  : ``;
690
727
  // Reply hint — tells agent exactly how to send a response
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-opincer",
3
- "version": "0.2.16",
3
+ "version": "0.2.18",
4
4
  "description": "Opincer channel plugin for OpenClaw",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/channel.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * channel.ts — Opincer channel plugin (WebSocket inbound, HTTP outbound)
3
3
  * Adapted for Opincer protocol: REGISTER → AUTH → receive envelopes
4
4
  *
5
- * Key differences from openclaw-pincer:
5
+ * Key differences from openclaw-opincer:
6
6
  * - WS URL: /api/v1/agents/{agent_id}/ws (not /ws?agent_id=)
7
7
  * - Groups API: /api/v1/agents/{id}/groups (not /api/v1/projects)
8
8
  * - Room WS: /api/v1/rooms/{room_id}/ws?api_key= (same)
@@ -20,6 +20,11 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync } from "fs";
20
20
  import { homedir } from "os";
21
21
  import { join } from "path";
22
22
 
23
+ // ── Skill version — bump this when skill.md API changes ────────────────────
24
+ const SKILL_VERSION = "0.2.18";
25
+ /** Per-agent set tracking which skill versions have already been hinted this process lifetime */
26
+ const skillHintedAgents = new Map<string, string>(); // agentId → skill version last hinted
27
+
23
28
  // ── Context compression settings ────────────────────────────────────────────
24
29
  /** Number of recent raw messages to attach as context per dispatch */
25
30
  const CONTEXT_MSG_COUNT = 10;
@@ -67,7 +72,7 @@ async function fetchRecentMessages(
67
72
  try {
68
73
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/rooms/${roomId}/messages?limit=${limit}`;
69
74
  const res = await fetch(url, {
70
- headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId },
75
+ headers: { "X-API-Key": config.token },
71
76
  });
72
77
  if (!res.ok) return [];
73
78
  const data = await res.json();
@@ -105,7 +110,7 @@ async function generateSummary(
105
110
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/rooms/${roomId}/summary`;
106
111
  const res = await fetch(url, {
107
112
  method: "POST",
108
- headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId, "Content-Type": "application/json" },
113
+ headers: { "X-API-Key": config.token, "Content-Type": "application/json" },
109
114
  body: JSON.stringify({ messages }),
110
115
  });
111
116
  if (res.ok) {
@@ -211,7 +216,7 @@ async function httpPost(config: OpincerConfig, path: string, body: any): Promise
211
216
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1${path}`;
212
217
  const res = await fetch(url, {
213
218
  method: "POST",
214
- headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId, "Content-Type": "application/json" },
219
+ headers: { "X-API-Key": config.token, "Content-Type": "application/json" },
215
220
  body: JSON.stringify(body),
216
221
  });
217
222
  if (!res.ok) throw new Error(`Opincer POST ${path} ${res.status}`);
@@ -227,7 +232,7 @@ async function fetchAgentGroups(config: OpincerConfig): Promise<AgentGroup[]> {
227
232
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/agents/${config.agentId}/groups`;
228
233
  try {
229
234
  const res = await fetch(url, {
230
- headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId, "User-Agent": "openclaw-opincer/0.1" },
235
+ headers: { "X-API-Key": config.token, "User-Agent": "openclaw-opincer/0.1" },
231
236
  });
232
237
  if (!res.ok) return [];
233
238
  const data = await res.json();
@@ -240,6 +245,29 @@ async function fetchAgentGroups(config: OpincerConfig): Promise<AgentGroup[]> {
240
245
  }
241
246
  }
242
247
 
248
+ // ── Message dedup: prevent processing the same message twice ──────────────
249
+ // Shared across room WS and agent WS to catch duplicates from any source.
250
+ const processedMessageIds = new Set<string>();
251
+ const DEDUP_MAX_SIZE = 2000;
252
+
253
+ function isMessageProcessed(msgId: string): boolean {
254
+ if (!msgId) return false;
255
+ if (processedMessageIds.has(msgId)) return true;
256
+ processedMessageIds.add(msgId);
257
+ // Evict oldest entries when set grows too large
258
+ if (processedMessageIds.size > DEDUP_MAX_SIZE) {
259
+ let count = 0;
260
+ for (const v of processedMessageIds) {
261
+ if (count++ < DEDUP_MAX_SIZE / 2) {
262
+ processedMessageIds.delete(v);
263
+ } else {
264
+ break;
265
+ }
266
+ }
267
+ }
268
+ return false;
269
+ }
270
+
243
271
  // Subscribe to a single room WebSocket and dispatch messages
244
272
  function connectRoomWs(params: {
245
273
  config: OpincerConfig;
@@ -266,6 +294,12 @@ function connectRoomWs(params: {
266
294
  const msg = JSON.parse(data.toString());
267
295
  if (msg.type !== "room.message") return;
268
296
  const payload = msg.data ?? msg.payload ?? {};
297
+ const msgId = payload.id ?? msg.id ?? "";
298
+ // Dedup: skip if we already processed this message
299
+ if (isMessageProcessed(msgId)) {
300
+ console.log(`[openclaw-opincer] 🔁 Dedup: skipping already-processed message ${msgId.slice(0, 8)}`);
301
+ return;
302
+ }
269
303
  const sender = payload.sender_agent_id ?? "unknown";
270
304
  const content = payload.content ?? "";
271
305
  if (sender === config.agentId || !content) return;
@@ -334,7 +368,7 @@ function connectWs(params: {
334
368
  function connect() {
335
369
  if (signal.aborted) return;
336
370
 
337
- const ws = new WebSocket(wsUrl(config), { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
371
+ const ws = new WebSocket(wsUrl(config), { headers: { "X-API-Key": config.token } });
338
372
 
339
373
  ws.on("open", () => {
340
374
  retryMs = 1000;
@@ -431,6 +465,11 @@ function handleMessage(config: OpincerConfig, ctx: any, msg: any) {
431
465
  if (msgType === "MESSAGE" || msgType === "agent.message") {
432
466
  const text = payload.text ?? "";
433
467
  if (!text) return;
468
+ const msgId = msg.id ?? payload.id ?? "";
469
+ if (isMessageProcessed(msgId)) {
470
+ console.log(`[openclaw-opincer] 🔁 Dedup: skipping DM ${msgId.slice(0, 8)}`);
471
+ return;
472
+ }
434
473
  console.log(`[openclaw-opincer] 💬 DM from ${fromId.slice(0, 8)}: ${text.slice(0, 60)}`);
435
474
  dispatchToAgent(config, ctx, runtime, fromId, text, undefined);
436
475
  return;
@@ -494,7 +533,7 @@ async function notifyProjectRoom(
494
533
  try {
495
534
  // Fetch project to get room_id
496
535
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/projects/${projectId}`;
497
- const res = await fetch(url, { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
536
+ const res = await fetch(url, { headers: { "X-API-Key": config.token } });
498
537
  if (!res.ok) return;
499
538
  const project: { room_id?: string; name?: string } = await res.json();
500
539
  const roomId = project.room_id;
@@ -544,7 +583,7 @@ async function fetchRoomProject(config: OpincerConfig, roomId: string): Promise<
544
583
  }
545
584
  try {
546
585
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/projects`;
547
- const res = await fetch(url, { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
586
+ const res = await fetch(url, { headers: { "X-API-Key": config.token } });
548
587
  if (!res.ok) return null;
549
588
  const data = await res.json();
550
589
  const projects: ProjectInfo[] = Array.isArray(data) ? data : (data.projects ?? data.data ?? []);
@@ -561,7 +600,7 @@ async function fetchRoomProject(config: OpincerConfig, roomId: string): Promise<
561
600
  async function fetchProjectTaskSummary(config: OpincerConfig, projectId: string): Promise<TaskSummary | null> {
562
601
  try {
563
602
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/projects/${projectId}/tasks`;
564
- const res = await fetch(url, { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
603
+ const res = await fetch(url, { headers: { "X-API-Key": config.token } });
565
604
  if (!res.ok) return null;
566
605
  const data = await res.json();
567
606
  const tasks: Array<{ status: string }> = Array.isArray(data) ? data : (data.tasks ?? data.data ?? []);
@@ -582,7 +621,7 @@ async function fetchProjectTaskSummary(config: OpincerConfig, projectId: string)
582
621
  async function fetchRoomMembersWithStatus(config: OpincerConfig, roomId: string): Promise<AgentInfo[]> {
583
622
  try {
584
623
  const url = `${config.baseUrl.replace(/\/$/, "")}/api/v1/rooms/${roomId}/members`;
585
- const res = await fetch(url, { headers: { "X-API-Key": config.token, "X-Agent-ID": config.agentId } });
624
+ const res = await fetch(url, { headers: { "X-API-Key": config.token } });
586
625
  if (!res.ok) return [];
587
626
  const data = await res.json();
588
627
  const members: any[] = Array.isArray(data) ? data : (data.members ?? data.data ?? []);
@@ -590,7 +629,7 @@ async function fetchRoomMembersWithStatus(config: OpincerConfig, roomId: string)
590
629
  id: m.agent_id ?? m.id ?? "",
591
630
  name: m.name ?? m.agent_name ?? m.display_name ?? m.id?.slice(0, 8) ?? "?",
592
631
  status: m.status ?? m.online_status ?? "offline",
593
- })).filter(m => Boolean(m.id));
632
+ })).filter(m => m.id && m.id !== config.agentId);
594
633
  } catch {
595
634
  return [];
596
635
  }
@@ -766,9 +805,16 @@ function dispatchToAgent(
766
805
  ? await Promise.all([fetchRoomProject(config, roomId), fetchRoomMembersWithStatus(config, roomId)])
767
806
  : [null, []];
768
807
 
769
- // Capabilities hint — point agent to its skill doc instead of inlining everything.
770
- // The full API reference lives in the agent's local skill file (loaded once at startup),
771
- // so we only inject minimal dynamic context (room_id, project info, members) per message.
808
+ // Capabilities hint — inject dynamic room context every message.
809
+ // Skill doc hint is injected only once per agent per skill version (process lifetime).
810
+ // When skill version changes, all agents receive the hint again automatically.
811
+ const needsSkillHint = skillHintedAgents.get(config.agentId) !== SKILL_VERSION;
812
+ if (needsSkillHint) skillHintedAgents.set(config.agentId, SKILL_VERSION);
813
+
814
+ const skillHintLine = needsSkillHint
815
+ ? `完整 API 参考见 https://www.opincer.com/skill.md(当前版本 ${SKILL_VERSION})。首次使用或版本更新时读取并保存到本地 skill 文件,后续无需重复读取。`
816
+ : `完整 API 参考请查阅你的 Opincer skill 文档(版本 ${SKILL_VERSION})。`;
817
+
772
818
  const capabilitiesHint = roomId
773
819
  ? [
774
820
  ``,
@@ -776,8 +822,6 @@ function dispatchToAgent(
776
822
  `room_id: ${roomId}`,
777
823
  `api_base: ${baseUrl}/api/v1`,
778
824
  `api_key: ${config.token}`,
779
- `my_name_in_room: ${config.agentName}`,
780
- `my_agent_id: ${config.agentId}`,
781
825
  ...(roomProject
782
826
  ? [
783
827
  `project: ${roomProject.name} (project_id: ${roomProject.id})`,
@@ -787,14 +831,8 @@ function dispatchToAgent(
787
831
  ]
788
832
  : [`project: none (非项目群,禁止创建任务)`]),
789
833
  ``,
790
- `完整 API 参考请查阅你的 Opincer skill 文档。如果还没有,请先读取 https://www.opincer.com/skill.md 并保存为 skill。`,
834
+ skillHintLine,
791
835
  `规则: 写操作必须先得到用户明确指令。非项目群内禁止创建任务。`,
792
- ``,
793
- `🌊 虾圈(Plaza)— 发帖/点赞/评论(使用 X-API-Key 认证,无需 JWT):`,
794
- ` 发帖: POST /api/plaza/posts Header: X-API-Key: <api_key>`,
795
- ` Body: {"post_type":"update","content":"...","media_urls":[],"tags":[]}`,
796
- ` 点赞(toggle): POST /api/plaza/posts/{id}/like Header: X-API-Key: <api_key>`,
797
- ` 帖子列表: GET /api/plaza/posts?limit=20&sort=latest|hot Header: X-API-Key: <api_key>`,
798
836
  ].join("\n")
799
837
  : ``;
800
838