2026-03-20-HiveCrew操作台功能迭代.md

Coco 协调日志

协调日志 · HiveCrew操作台功能迭代

日期: 2026-03-20 执行: Pixel(前端)+ Coco(后端+协调) 状态: ✅ 全部完成(含归档)


任务背景

William对HiveCrew操作台(02-蜂巢创科/Pixel工作区/hivecrew-app/)提出7项功能需求,本窗口从context压缩后接续完成。


完成事项

✅ 1. 对话气泡\n渲染修复

问题:SSE流式输出中换行符\n显示为字面文字而非实际换行。

修复: - 文件:dashboard.html - 位置:.chat-bubble CSS类 - 变更:添加 white-space: pre-wrap; word-break: break-word


✅ 2. Hunter工作区文件展示

功能:在"工作区"tab中展示Hunter通过HiveStack产出的成果文件列表。

实现: - 前端:loadHunterFiles() 函数,调用 /api/hunter/files,渲染.hunter-section并在切换tab时先清除旧section - 后端:GET /api/hunter/files 扫描 02-蜂巢创科/Hunter工作区/HiveStack输出/*.md - 后端:GET /api/hunter/file/<filename> 提供文件下载/预览


✅ 3. SQLite对话历史持久化

需求:每个员工的对话记录在页面刷新后仍然保留。

实现: - 数据库:hivecrew-app/chat_history.db - 表:messages(id, agent, role, content, created_at) - API: - GET /api/chat/history?agent=hunter&limit=30 - POST /api/chat/save — body: {agent, role, content} - 前端SSE处理:流结束后自动保存user和assistant两条记录


✅ 4. 员工记忆体系(轻量版 + 完整版)

需求:每个员工有独立记忆文件;每次对话后异步提炼关键信息更新记忆;记忆注入system_prompt。

轻量版(读取记忆+历史)

_build_agent_context(agent_id) -> str
# 读memory.md + 最近10条SQLite历史 → 注入system_prompt

完整版(异步记忆更新)

_update_memory_async(agent_id, user_msg, assistant_reply)
# 后台线程 → 调GLM-4.7 → 提炼精华 → 写memory.md

文件位置hivecrew-app/agent_workspaces/{agent_id}/memory.md

API: - GET /api/agent/memory/<agent_id> — 读记忆 - PUT /api/agent/memory/<agent_id> — 写记忆 - POST /api/agent/memory/<agent_id>/clear — 清空记忆

前端🧠 记忆 按钮 + Memory Modal(查看/编辑/清空)


✅ 5. 对话面板实时搜索

功能:在chat panel顶部增加搜索框,实时过滤员工列表。

实现: - HTML:#chat-search 输入框 - JS:filterChatPanel(query) — 正则匹配name/chinese_name/dept字段,隐藏不匹配项


✅ 6. 部门拖拽排序

功能:用户可拖拽左侧org panel的部门标题,重新排列部门顺序;顺序持久化并双向同步。

实现: - 模块级变量:_deptOrder(从localStorage读取)、_cachedAgentList_orgDragSrc - 辅助函数:_sortedDepts(agentList) — 按_deptOrder排序 - 事件:orgDragStart, orgDragOver, orgDrop, orgDragEnd - 持久化:localStorage.setItem('hivecrew_dept_order', JSON.stringify(_deptOrder)) - 同步:拖拽drop后同时重渲org panel + chat panel


✅ 7. Manus成果提取修复 + 下载按钮

背景:Hunter通过Manus执行的任务已完成(截图确认),但前端没有收到成果,因为后端提取代码返回空字符串。

根因:原提取代码只查output[].role==assistant.content[].text,实际Manus API可能通过不同字段返回结果。

修复launch.py generate_manus()函数,第744-756行):

# 多路径fallback提取
# 路径1:task_detail.message(官方文档标准字段)
final_text = (detail.get("task_detail") or {}).get("message", "")
# 路径2:output[].role=assistant.content[].text
if not final_text:
    for item in reversed(detail.get("output", [])):
        if item.get("role") == "assistant":
            for block in item.get("content", []):
                t = block.get("text", "")
                if t:
                    final_text = t
                    break
        if final_text:
            break
# 路径3:result / message 顶层字段
if not final_text:
    final_text = detail.get("result", "") or detail.get("message", "")
# 路径4:output 字符串直接
if not final_text and isinstance(detail.get("output"), str):
    final_text = detail["output"]

新增debug端点launch.py):

GET /api/manus/debug?task_id=xxx
→ 返回Manus原始JSON,用于确认真实响应结构

验证方法:访问 http://localhost:7743/api/manus/debug?task_id=TBCSVyRJWcCoqpzQpXcJ2a

前端下载按钮dashboard.html SSE处理器):

if (d.file && d.filename && bubble) {
  const dlBtn = document.createElement('a');
  dlBtn.href = `/api/hunter/file/${encodeURIComponent(d.filename)}`;
  dlBtn.download = d.filename;
  dlBtn.textContent = `⬇️ 下载成果:${d.filename}`;
  // 绿色按钮样式
  bubble.appendChild(dlBtn);
}

未完成 / 待验证

  1. Manus提取验证:需让Hunter重新发送任务,确认task_detail.message路径是否命中
  2. 对话历史加载渲染/api/chat/history已就绪,但前端切换agent时是否自动渲染历史气泡需验证
  3. LiteLLM记忆提炼依赖_update_memory_async依赖http://127.0.0.1:4000,LiteLLM未启动时静默失败,需确认是否正常运行

文件变更清单

文件 变更类型 说明
hivecrew-app/dashboard.html 修改 7项功能全部在此实现
hivecrew-app/launch.py 修改 记忆体系函数+历史API+Manus修复+debug端点

接续指南(给下一个Coco窗口)

当前HiveCrew运行方式

cd "日记/数字员工团队/02-蜂巢创科/Pixel工作区/hivecrew-app"
python3 launch.py
# 访问 http://localhost:7743

立即可验证的事项: 1. 打开Hunter,发送任意任务 → 等待Manus完成 → 检查是否出现绿色下载按钮 2. 访问 http://localhost:7743/api/manus/debug?task_id=TBCSVyRJWcCoqpzQpXcJ2a → 查看Manus响应真实结构 3. 切换任意员工 → 发送消息 → 刷新页面 → 切换回该员工 → 确认历史是否仍然显示

关键文件路径: - 操作台:02-蜂巢创科/Pixel工作区/hivecrew-app/ - Hunter成果:02-蜂巢创科/Hunter工作区/HiveStack输出/ - 对话历史DB:02-蜂巢创科/Pixel工作区/hivecrew-app/chat_history.db - 员工记忆:02-蜂巢创科/Pixel工作区/hivecrew-app/agent_workspaces/{agent_id}/memory.md - 话题归档:memory/topics/2026-03-20_hivecrew-dashboard-memory-manus-fix.md