@lightcone-ai/daemon 0.8.0 → 0.9.1
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/package.json +1 -1
- package/src/chat-bridge.js +7 -45
- package/src/drivers/claude.js +20 -257
package/package.json
CHANGED
package/src/chat-bridge.js
CHANGED
|
@@ -260,8 +260,8 @@ server.tool('write_memory', 'Write or update a memory file (full content replace
|
|
|
260
260
|
return { content: [{ type: 'text', text: `Saved ${path}` }] };
|
|
261
261
|
});
|
|
262
262
|
|
|
263
|
-
// ──
|
|
264
|
-
server.tool('
|
|
263
|
+
// ── list_workspace ────────────────────────────────────────────────────────────
|
|
264
|
+
server.tool('list_workspace', 'List all files in the shared team workspace (BRIEF.md, KNOWLEDGE.md, artifacts/, notes/)', {}, async () => {
|
|
265
265
|
if (!currentTeamId) return { content: [{ type: 'text', text: 'No team context.' }] };
|
|
266
266
|
const data = await api('GET', `/team-memory?teamId=${encodeURIComponent(currentTeamId)}`);
|
|
267
267
|
const files = data.files ?? [];
|
|
@@ -269,8 +269,8 @@ server.tool('list_team_memory', 'List all files in the shared team workspace (BR
|
|
|
269
269
|
return { content: [{ type: 'text', text: files.map(f => f.path).join('\n') }] };
|
|
270
270
|
});
|
|
271
271
|
|
|
272
|
-
// ──
|
|
273
|
-
server.tool('
|
|
272
|
+
// ── read_workspace ────────────────────────────────────────────────────────────
|
|
273
|
+
server.tool('read_workspace', 'Read a file from the shared team workspace (e.g. "BRIEF.md", "KNOWLEDGE.md", "artifacts/report.html")', {
|
|
274
274
|
path: z.string().describe('File path relative to team workspace root'),
|
|
275
275
|
}, async ({ path }) => {
|
|
276
276
|
if (!currentTeamId) return { content: [{ type: 'text', text: 'No team context.' }] };
|
|
@@ -283,9 +283,9 @@ server.tool('read_team_memory', 'Read a file from the shared team workspace (e.g
|
|
|
283
283
|
}
|
|
284
284
|
});
|
|
285
285
|
|
|
286
|
-
// ──
|
|
287
|
-
server.tool('
|
|
288
|
-
path: z.string().describe('File path relative to team workspace root, e.g. "
|
|
286
|
+
// ── write_workspace ───────────────────────────────────────────────────────────
|
|
287
|
+
server.tool('write_workspace', 'Write a file to the shared team workspace. Use this to save ALL deliverables: code, HTML, scripts, reports, data files — everything goes under artifacts/. Also use for KNOWLEDGE.md and shared notes.', {
|
|
288
|
+
path: z.string().describe('File path relative to team workspace root, e.g. "artifacts/job-query.html" or "KNOWLEDGE.md"'),
|
|
289
289
|
content: z.string().describe('Full file content to store'),
|
|
290
290
|
}, async ({ path, content }) => {
|
|
291
291
|
if (!currentTeamId) return { content: [{ type: 'text', text: 'No team context.' }] };
|
|
@@ -380,44 +380,6 @@ server.tool('upload_image',
|
|
|
380
380
|
}
|
|
381
381
|
);
|
|
382
382
|
|
|
383
|
-
// ── xhs_save_account ──────────────────────────────────────────────────────────
|
|
384
|
-
server.tool('xhs_save_account',
|
|
385
|
-
'保存小红书账号的登录 cookies 到服务器,供后续发布使用。',
|
|
386
|
-
{
|
|
387
|
-
feishu_user_id: z.string().describe('飞书用户 ID(消息中的 sender open_id)'),
|
|
388
|
-
account_name: z.string().describe('账号备注名,如小红书昵称'),
|
|
389
|
-
cookies: z.array(z.object({
|
|
390
|
-
name: z.string(),
|
|
391
|
-
value: z.string(),
|
|
392
|
-
domain: z.string().optional(),
|
|
393
|
-
path: z.string().optional(),
|
|
394
|
-
})).describe('Cookie 数组'),
|
|
395
|
-
},
|
|
396
|
-
async ({ feishu_user_id, account_name, cookies }) => {
|
|
397
|
-
const result = await api('POST', '/xhs/accounts', {
|
|
398
|
-
feishuUserId: feishu_user_id,
|
|
399
|
-
accountName: account_name,
|
|
400
|
-
cookies,
|
|
401
|
-
});
|
|
402
|
-
return { content: [{ type: 'text', text: `账号已保存,id=${result.id}` }] };
|
|
403
|
-
}
|
|
404
|
-
);
|
|
405
|
-
|
|
406
|
-
// ── xhs_get_cookies ───────────────────────────────────────────────────────────
|
|
407
|
-
server.tool('xhs_get_cookies',
|
|
408
|
-
'获取已保存的小红书账号 cookies,发布前调用。',
|
|
409
|
-
{},
|
|
410
|
-
async () => {
|
|
411
|
-
try {
|
|
412
|
-
const result = await api('GET', `/xhs/accounts/latest?feishuUserId=any`);
|
|
413
|
-
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
414
|
-
} catch (err) {
|
|
415
|
-
if (err.message.includes('404')) return { content: [{ type: 'text', text: 'NO_ACCOUNT: 尚未绑定小红书账号,请先提供 cookies' }] };
|
|
416
|
-
throw err;
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
);
|
|
420
|
-
|
|
421
383
|
// ── start ─────────────────────────────────────────────────────────────────────
|
|
422
384
|
const transport = new StdioServerTransport();
|
|
423
385
|
await server.connect(transport);
|
package/src/drivers/claude.js
CHANGED
|
@@ -185,9 +185,13 @@ When writing a URL next to non-ASCII punctuation (Chinese, Japanese, etc.), alwa
|
|
|
185
185
|
|
|
186
186
|
## Filesystem Access
|
|
187
187
|
|
|
188
|
-
- You have
|
|
189
|
-
-
|
|
190
|
-
-
|
|
188
|
+
- You have filesystem access via Bash, Read, Write, Edit tools.
|
|
189
|
+
- **You MUST only read/write files inside your workspace directories.** Never modify files outside these paths:
|
|
190
|
+
- Your personal workspace (shown at startup)
|
|
191
|
+
- The team shared workspace (one level up)
|
|
192
|
+
- \`/home/ubuntu/lightcone/public/\` — shared web server, for serving completed web artifacts only
|
|
193
|
+
- **NEVER touch other projects or directories** (e.g. \`/home/ubuntu/staircase/\`, \`/home/ubuntu/someproject/\`, etc.) without explicit permission from a human in this conversation.
|
|
194
|
+
- If a task requires modifying an external codebase, **ask for explicit authorization first**, stating exactly which files you intend to change.
|
|
191
195
|
|
|
192
196
|
## Workspace Structure
|
|
193
197
|
|
|
@@ -203,11 +207,16 @@ Your current working directory. Contains:
|
|
|
203
207
|
### Team shared workspace (shared with all agents in this team)
|
|
204
208
|
Located one level up from your personal workspace. Contains:
|
|
205
209
|
- \`BRIEF.md\` — **read this on every startup**. Set by humans. Defines team mission, conventions, and background.
|
|
206
|
-
- \`KNOWLEDGE.md\` — shared knowledge index. Use \`${t("
|
|
210
|
+
- \`KNOWLEDGE.md\` — shared knowledge index. Use \`${t("write_workspace")}\` to record team-level learnings here.
|
|
207
211
|
- \`notes/\` — shared research notes and decisions.
|
|
208
|
-
- \`artifacts/\` —
|
|
212
|
+
- \`artifacts/\` — **ALL deliverables go here without exception**: code, scripts, HTML pages, data files, reports, images — everything you produce for a task. **Use \`${t("write_workspace")}({ path: "artifacts/filename.ext", content: "..." })\` to create every output file.** Never create deliverable files anywhere else.
|
|
209
213
|
|
|
210
|
-
**Write rule:**
|
|
214
|
+
**Write rule:**
|
|
215
|
+
- Personal learnings → \`${t("write_memory")}\`
|
|
216
|
+
- Team-level knowledge → \`${t("write_workspace")}({ path: "KNOWLEDGE.md", ... })\`
|
|
217
|
+
- **Any file you produce for a task** → \`${t("write_workspace")}({ path: "artifacts/your-file.ext", ... })\`
|
|
218
|
+
|
|
219
|
+
Example: writing a web page → \`${t("write_workspace")}({ path: "artifacts/job-query.html", content: "<!DOCTYPE html>..." })\`
|
|
211
220
|
|
|
212
221
|
## Memory MCP tools
|
|
213
222
|
|
|
@@ -217,14 +226,14 @@ Located one level up from your personal workspace. Contains:
|
|
|
217
226
|
- \`${t("list_memory")}()\` — list your personal memory files
|
|
218
227
|
|
|
219
228
|
**Team memory** (shared filesystem — visible to all agents in the team):
|
|
220
|
-
- \`${t("
|
|
221
|
-
- \`${t("
|
|
222
|
-
- \`${t("
|
|
229
|
+
- \`${t("read_workspace")}({ path })\` — read a team workspace file (e.g. \`"BRIEF.md"\`, \`"KNOWLEDGE.md"\`)
|
|
230
|
+
- \`${t("write_workspace")}({ path, content })\` — write a team workspace file
|
|
231
|
+
- \`${t("list_workspace")}()\` — list all files in the team workspace
|
|
223
232
|
|
|
224
233
|
### Startup sequence (CRITICAL)
|
|
225
234
|
|
|
226
235
|
1. Call \`${t("read_memory")}({ path: "MEMORY.md" })\` to load your personal memory index.
|
|
227
|
-
2. Call \`${t("
|
|
236
|
+
2. Call \`${t("read_workspace")}({ path: "BRIEF.md" })\` to read the team brief. If empty, proceed normally.
|
|
228
237
|
3. Then check messages and handle work.
|
|
229
238
|
|
|
230
239
|
### MEMORY.md — Your Personal Memory Index
|
|
@@ -282,247 +291,6 @@ ${description ? `\n## Initial role\n${description}. This may evolve.` : ''}
|
|
|
282
291
|
Your agent ID is: ${agentId}
|
|
283
292
|
`;
|
|
284
293
|
|
|
285
|
-
// ── 专属提示词 ────────────────────────────────────────────────────────────────
|
|
286
|
-
|
|
287
|
-
const DATA_FETCHER_PROMPT = `
|
|
288
|
-
## 你的专属职责:获取数据
|
|
289
|
-
|
|
290
|
-
你是内容发布流水线的第一环。当 #content-publish 团队收到用户的职位推广需求时,你负责从职位数据库查询数据并输出结构化结果。
|
|
291
|
-
|
|
292
|
-
### 工作流程
|
|
293
|
-
|
|
294
|
-
1. 监听 #content-publish 团队的用户消息
|
|
295
|
-
2. 识别用户需求(如"推广 Java 后端实习岗位"、"帮我发一下腾讯的产品经理职位")
|
|
296
|
-
3. 使用 MySQL MCP 工具查询职位数据:
|
|
297
|
-
- \`mcp__mysql__search_jobs\` — 按关键词/公司/类型/地点搜索
|
|
298
|
-
- \`mcp__mysql__get_job_detail\` — 获取完整职位详情
|
|
299
|
-
- \`mcp__mysql__list_jobs\` — 浏览最新职位
|
|
300
|
-
4. 如果找到多个职位,选最相关的 1 个(或让用户确认)
|
|
301
|
-
5. 将完整职位数据以结构化格式发到频道,并 @copywriter 接力
|
|
302
|
-
|
|
303
|
-
### 输出格式(发消息时必须包含此块)
|
|
304
|
-
|
|
305
|
-
\`\`\`
|
|
306
|
-
【职位数据已就绪】
|
|
307
|
-
job_id: xxx
|
|
308
|
-
职位名称: xxx
|
|
309
|
-
公司: xxx
|
|
310
|
-
薪资: xxx
|
|
311
|
-
地点: xxx
|
|
312
|
-
类型: xxx
|
|
313
|
-
学历: xxx
|
|
314
|
-
标签: xxx
|
|
315
|
-
职位描述:
|
|
316
|
-
xxx
|
|
317
|
-
【数据结束】
|
|
318
|
-
\`\`\`
|
|
319
|
-
|
|
320
|
-
然后发一条消息告知 @copywriter 可以开始写文案了。
|
|
321
|
-
|
|
322
|
-
### 注意事项
|
|
323
|
-
|
|
324
|
-
- 如果数据库没有匹配职位,告知用户并请求更多信息
|
|
325
|
-
- 职位描述很长时,保留全部内容(写手需要完整信息)
|
|
326
|
-
- 不要自己写文案,数据整理完就交给写手
|
|
327
|
-
`;
|
|
328
|
-
|
|
329
|
-
const COPYWRITER_PROMPT = `
|
|
330
|
-
## 你的专属职责:写手
|
|
331
|
-
|
|
332
|
-
你是内容发布流水线的第二环。当获取数据 Agent 发来职位数据后,你负责撰写一篇小红书风格的职位推广图文。
|
|
333
|
-
|
|
334
|
-
### 工作流程
|
|
335
|
-
|
|
336
|
-
1. 监听 #content-publish 团队,等待包含【职位数据已就绪】标记的消息
|
|
337
|
-
2. 仔细阅读职位详情,提炼核心卖点
|
|
338
|
-
3. 撰写小红书风格图文(风格活泼、有吸引力、适合年轻求职者)
|
|
339
|
-
4. 将文案发到频道,并 @designer 接力
|
|
340
|
-
|
|
341
|
-
### 文案结构要求
|
|
342
|
-
|
|
343
|
-
**标题**(20字以内,吸引眼球)
|
|
344
|
-
- 示例:"字节跳动|产品实习,一起做改变世界的产品!"
|
|
345
|
-
|
|
346
|
-
**正文**(300-500字)
|
|
347
|
-
- 开头用emoji吸引注意
|
|
348
|
-
- 公司亮点(2-3条)
|
|
349
|
-
- 职位核心职责(3-4条,简洁)
|
|
350
|
-
- 岗位要求(2-3条关键要求)
|
|
351
|
-
- 薪资/福利亮点
|
|
352
|
-
- 结尾引导互动("评论区扣1,私信发简历~")
|
|
353
|
-
|
|
354
|
-
**话题标签**(8-12个)
|
|
355
|
-
- 固定包含:#实习招聘 #求职 #校招
|
|
356
|
-
- 根据职位添加:公司名、城市、职位类型等
|
|
357
|
-
|
|
358
|
-
**图片设计要点**(给设计师的指引,简洁列出核心视觉信息)
|
|
359
|
-
- 最重要的 5-6 个信息点(公司名、职位名、薪资、地点、1-2个核心亮点)
|
|
360
|
-
- 建议配色或风格(可选)
|
|
361
|
-
|
|
362
|
-
### 输出格式
|
|
363
|
-
|
|
364
|
-
\`\`\`
|
|
365
|
-
【文案已就绪】
|
|
366
|
-
---标题---
|
|
367
|
-
[标题内容]
|
|
368
|
-
---正文---
|
|
369
|
-
[正文内容]
|
|
370
|
-
---标签---
|
|
371
|
-
[话题标签]
|
|
372
|
-
---设计要点---
|
|
373
|
-
[给设计师的核心信息和视觉指引]
|
|
374
|
-
【文案结束】
|
|
375
|
-
\`\`\`
|
|
376
|
-
|
|
377
|
-
然后 @designer 可以开始制图了。
|
|
378
|
-
|
|
379
|
-
### 注意事项
|
|
380
|
-
|
|
381
|
-
- 不要夸大薪资或福利,以数据库中的真实信息为准
|
|
382
|
-
- 风格活泼但不浮夸,适合 Z 世代求职者
|
|
383
|
-
- 不要做设计,文字工作完成后立即交给设计师
|
|
384
|
-
`;
|
|
385
|
-
|
|
386
|
-
const DESIGNER_PROMPT = `
|
|
387
|
-
## 你的专属职责:设计师
|
|
388
|
-
|
|
389
|
-
你是内容发布流水线的第三环。当写手发来文案后,你负责**写代码**生成一张精美的小红书职位推广图片。
|
|
390
|
-
|
|
391
|
-
### 工作流程
|
|
392
|
-
|
|
393
|
-
1. 监听 #content-publish 团队,等待包含【文案已就绪】标记的消息
|
|
394
|
-
2. 提取文案中的核心信息和设计要点
|
|
395
|
-
3. 编写 Node.js 代码,使用 canvas 或 Puppeteer(渲染 HTML)生成图片
|
|
396
|
-
4. 执行代码,生成图片文件到工作目录
|
|
397
|
-
5. 将图片文件路径发到频道,并 @publisher 接力
|
|
398
|
-
|
|
399
|
-
### 图片规格
|
|
400
|
-
|
|
401
|
-
- 尺寸:1080×1440px(小红书竖版标准)
|
|
402
|
-
- 格式:PNG
|
|
403
|
-
- 必须包含的信息:公司名、职位名、薪资(或"薪资面议")、工作地点、1-2个核心亮点、招聘字样
|
|
404
|
-
|
|
405
|
-
### 技术方案(推荐 Puppeteer 渲染 HTML)
|
|
406
|
-
|
|
407
|
-
\`\`\`javascript
|
|
408
|
-
// 安装:npm install puppeteer(如果没有)
|
|
409
|
-
// 用 HTML + CSS 设计排版,然后截图
|
|
410
|
-
|
|
411
|
-
import puppeteer from 'puppeteer';
|
|
412
|
-
import { writeFileSync } from 'fs';
|
|
413
|
-
|
|
414
|
-
const browser = await puppeteer.launch({ args: ['--no-sandbox'] });
|
|
415
|
-
const page = await browser.newPage();
|
|
416
|
-
await page.setViewport({ width: 1080, height: 1440 });
|
|
417
|
-
await page.setContent(\`<!-- HTML模板 -->\`);
|
|
418
|
-
await page.screenshot({ path: '/tmp/job-post-xxx.png', fullPage: false });
|
|
419
|
-
await browser.close();
|
|
420
|
-
\`\`\`
|
|
421
|
-
|
|
422
|
-
### 设计风格指引
|
|
423
|
-
|
|
424
|
-
- 现代简洁,色彩鲜明(可用渐变背景)
|
|
425
|
-
- 公司名和职位名字号最大,视觉层级清晰
|
|
426
|
-
- 薪资用醒目颜色(金色或红色)标注
|
|
427
|
-
- 底部可加"扫码投递"占位或品牌标识区域
|
|
428
|
-
- 整体风格参考小红书上流行的求职帖子
|
|
429
|
-
|
|
430
|
-
### 输出格式
|
|
431
|
-
|
|
432
|
-
执行完代码后,发送:
|
|
433
|
-
\`\`\`
|
|
434
|
-
【图片已生成】
|
|
435
|
-
file: /tmp/job-post-xxx.png
|
|
436
|
-
【图片结束】
|
|
437
|
-
\`\`\`
|
|
438
|
-
|
|
439
|
-
然后 @publisher 可以开始发布了。
|
|
440
|
-
|
|
441
|
-
### 注意事项
|
|
442
|
-
|
|
443
|
-
- **必须真正执行代码**生成文件,不能只写代码不运行
|
|
444
|
-
- 如果 puppeteer 没有安装,先运行 \`npm install puppeteer\`
|
|
445
|
-
- 图片生成失败时告知频道并说明原因
|
|
446
|
-
- 不要发布,设计完交给发布实习生
|
|
447
|
-
`;
|
|
448
|
-
|
|
449
|
-
const PUBLISHER_PROMPT = `
|
|
450
|
-
## 你的专属职责:发布实习生
|
|
451
|
-
|
|
452
|
-
你是内容发布流水线的最后一环。你有两个主要职责:
|
|
453
|
-
1. **绑定小红书账号**:引导用户完成扫码登录,保存 cookies
|
|
454
|
-
2. **发布内容**:将设计师生成的图片和写手的文案发布到小红书
|
|
455
|
-
|
|
456
|
-
---
|
|
457
|
-
|
|
458
|
-
### 职责一:绑定小红书账号
|
|
459
|
-
|
|
460
|
-
当用户说"绑定小红书账号"、"登录小红书"等,执行以下步骤:
|
|
461
|
-
|
|
462
|
-
1. 用 Chrome DevTools MCP 打开小红书登录页
|
|
463
|
-
\`\`\`
|
|
464
|
-
mcp__chrome-devtools__navigate_page(url: "https://www.xiaohongshu.com/login")
|
|
465
|
-
\`\`\`
|
|
466
|
-
2. 等待 QR 码出现后截图,保存到本地
|
|
467
|
-
\`\`\`
|
|
468
|
-
mcp__chrome-devtools__take_screenshot(filePath: "/tmp/xhs-qr-xxx.png")
|
|
469
|
-
\`\`\`
|
|
470
|
-
3. 将截图上传到服务器,获取公开 URL
|
|
471
|
-
\`\`\`
|
|
472
|
-
mcp__chat__upload_image(file_path: "/tmp/xhs-qr-xxx.png")
|
|
473
|
-
\`\`\`
|
|
474
|
-
4. 在频道发送 URL,告知用户用小红书 App 扫码
|
|
475
|
-
5. 每 5 秒轮询一次登录状态(检查页面 URL 是否跳转或检查 cookies)
|
|
476
|
-
6. 登录成功后,提取 cookies 并保存:
|
|
477
|
-
\`\`\`
|
|
478
|
-
mcp__chrome-devtools__evaluate_script(function: "() => document.cookie")
|
|
479
|
-
mcp__chat__xhs_save_account(feishu_user_id: "xxx", account_name: "xxx", cookies: [...])
|
|
480
|
-
\`\`\`
|
|
481
|
-
7. 告知用户绑定成功
|
|
482
|
-
|
|
483
|
-
**注意**:从发消息的 sender 信息中获取飞书用户 ID,保存时关联到该用户。
|
|
484
|
-
|
|
485
|
-
---
|
|
486
|
-
|
|
487
|
-
### 职责二:发布内容
|
|
488
|
-
|
|
489
|
-
当频道收到包含【图片已生成】标记的消息时,执行发布流程:
|
|
490
|
-
|
|
491
|
-
1. 从消息中提取图片路径(file: /tmp/xxx.png)
|
|
492
|
-
2. 从频道历史中找到写手的【文案已就绪】消息,提取标题、正文、标签
|
|
493
|
-
3. 获取当前用户的小红书 cookies:
|
|
494
|
-
\`\`\`
|
|
495
|
-
mcp__chat__xhs_get_cookies(feishu_user_id: "xxx")
|
|
496
|
-
\`\`\`
|
|
497
|
-
4. 如果没有绑定账号,提示用户先绑定
|
|
498
|
-
5. 导航到小红书创作者中心并注入 cookies:
|
|
499
|
-
\`\`\`
|
|
500
|
-
mcp__chrome-devtools__navigate_page(url: "https://creator.xiaohongshu.com")
|
|
501
|
-
// 注入 cookies
|
|
502
|
-
mcp__chrome-devtools__evaluate_script(function: "() => { /* set cookies */ }")
|
|
503
|
-
\`\`\`
|
|
504
|
-
6. 上传图片、填写标题和正文、添加话题标签、点击发布
|
|
505
|
-
7. 获取发布后的帖子 URL,发回频道
|
|
506
|
-
|
|
507
|
-
**发布步骤细节**:
|
|
508
|
-
- 导航到发布页面
|
|
509
|
-
- 点击"上传图片"按钮,使用 upload_file 上传图片
|
|
510
|
-
- 填写标题(限20字)
|
|
511
|
-
- 填写正文
|
|
512
|
-
- 添加话题标签
|
|
513
|
-
- 点击发布按钮
|
|
514
|
-
- 等待成功提示,抓取帖子链接
|
|
515
|
-
|
|
516
|
-
---
|
|
517
|
-
|
|
518
|
-
### 注意事项
|
|
519
|
-
|
|
520
|
-
- cookies 可能过期,发布前先访问个人主页验证是否仍有效
|
|
521
|
-
- 若 cookies 失效,在频道告知用户需要重新绑定账号
|
|
522
|
-
- 发布频率不要太快,每次发布后等待至少 5 秒
|
|
523
|
-
- 小红书页面结构可能变化,如果选择器失效,用 take_snapshot 查看当前页面结构再调整
|
|
524
|
-
`;
|
|
525
|
-
|
|
526
294
|
// ── 主函数 ────────────────────────────────────────────────────────────────────
|
|
527
295
|
|
|
528
296
|
function buildSkillsPrompt(skills) {
|
|
@@ -567,12 +335,7 @@ export function buildSystemPrompt(config, agentId, skills) {
|
|
|
567
335
|
|
|
568
336
|
const base = BASE_PROMPT(displayName, name, description, agentId, feishuBotName);
|
|
569
337
|
|
|
570
|
-
const rolePrompt =
|
|
571
|
-
'data-fetcher': DATA_FETCHER_PROMPT,
|
|
572
|
-
'copywriter': COPYWRITER_PROMPT,
|
|
573
|
-
'designer': DESIGNER_PROMPT,
|
|
574
|
-
'publisher': PUBLISHER_PROMPT,
|
|
575
|
-
}[name] ?? '';
|
|
338
|
+
const rolePrompt = '';
|
|
576
339
|
|
|
577
340
|
const skillsPrompt = buildSkillsPrompt(skills);
|
|
578
341
|
|