Commit 39cbe290b30f966c4c6952d4bd2f9b6ee094d020

Authored by yibo
1 parent 5c510eb6

fix: agent list shows correct names and emojis

- Fix loadIdentity regex to handle **bold** markdown formatting
- Add fallback to config.json name when identity.md has no 名称 field
- Add 名称 field to Digester/Evolver/Innovator identity.md
data/agents/digester/identity.md
1 1 # 身份信息
2 2  
  3 +- **名称**: Digester
3 4 - **Emoji**: 🧬
4   -- **简称**: Digester
5 5 - **类型**: meta
6 6 - **全称**: Digester — 知识消化与体系构建专家
... ...
data/agents/evolver/identity.md
1 1 # 身份信息
2 2  
  3 +- 名称: Evolver
3 4 - Emoji: 🧬
4   -- 简称: Evolver
5 5 - 类型: meta
6 6 - 专长: RL 式迭代训练、Gap Analysis、SKILL.md 优化
... ...
data/agents/innovator/identity.md
1 1 # 身份信息
2 2  
  3 +- 名称: Innovator
3 4 - Emoji: 🧬
4 5 - 简称: Innovator
5 6 - 全名: Agent 训练总监 & 技能工厂
... ...
server/routes/agent-chat.js
... ... @@ -385,8 +385,13 @@ function loadAgentConfig(agentDir) {
385 385 function loadIdentity(agentDir) {
386 386 const content = loadFile(agentDir, 'identity.md');
387 387 const r = { name: 'Agent', emoji: '🤖', greeting: '' };
388   - const nm = content.match(/名称:\s*(.+)/); if (nm) r.name = nm[1].trim();
389   - const em = content.match(/Emoji:\s*(.+)/); if (em) r.emoji = em[1].trim();
  388 + const nm = content.match(/名称\**[::]\s*(.+)/); if (nm) r.name = nm[1].trim();
  389 + // fallback: 如果 identity.md 没有名称,从 config.json 取 name
  390 + if (r.name === 'Agent') {
  391 + const cfg = loadAgentConfig(agentDir);
  392 + if (cfg && cfg.name && cfg.name !== 'Agent') r.name = cfg.name;
  393 + }
  394 + const em = content.match(/Emoji\**[::]\s*(.+)/); if (em) r.emoji = em[1].trim();
390 395 const gm = content.match(/## 问候语\n"?([^"]*)"?/s);
391 396 if (gm) r.greeting = gm[1].trim().replace(/^"|"$/g, '');
392 397 return r;
... ...