日报:秘书器灵、微信插件、会话日志、菜谱技能包、智谱接入
这期日报跨两天(4/10–4/11),两个仓库共 111 commits,+18,585 / -1,780 行。
秘书器灵(Secretary Agent)
全新的后台常驻 agent,按小时自驱循环,扫描会话历史并维护三个文件:
profile.md(全局,~/.lingtai-tui/brief/profile.md)— 描述用户身份、专长、沟通风格。注入所有 agent 的系统提示。上限 5,000 tokens。journal.md(每项目,~/.lingtai-tui/brief/projects/<hash>/journal.md)— 项目当前状态、近期活动、关键决策、活跃 agent、待办事项的滚动摘要。上限 20,000 tokens。brief.md(每项目)— profile + journal 的机械拼接。这是 agent 实际读取的文件。
两阶段架构:
- 观察阶段 — 每轮读取 1 个小时级历史文件,精炼为 200–500 词的草稿,存入 library(抗凝蜕,跨重启存活)。每轮只读一个文件,多项目轮流处理。
- 整合阶段 — 全部读完后,加载某项目的所有草稿,完整重写 journal,必要时更新 profile,拼装 brief,验证 token 数,git commit,删除已消耗草稿。然后等下一轮。
自驱机制: 用 email(schedule) 每小时给自己发邮件触发。有积压时 5 分钟跟进。无需人工干预。
TUI 集成:
/secretary命令 — 三模式视图(Briefs / Mail / Log),状态头显示最后同步时间- Ctrl+B 强制立即简报、Ctrl+S 暂停秘书、Ctrl+R 重建并重启
/settings新增 Brief 开关(per-project),关闭后移除 brief 注入- 首次运行向导增加秘书确认步骤(默认开启)
简报技能经历多次迭代,最终形成两阶段设计:草稿存 library(抗凝蜕),每次写入后验证 token 数,git 版本控制,整合时通过 memory append 钉住 profile + journal 作为只读参考。
会话日志系统
全新 SessionCache 替代旧 verbose.go,session.jsonl 成为 TUI 聊天视图的唯一数据源。
架构: 从三个来源追加写入(mail、events.jsonl、soul_inquiry.jsonl),按 (from, ts) 去重,按时间排序。检测小时边界,自动将已完成的小时导出为 Markdown 文件供秘书读取。
关键函数:NewSessionCache()、RebuildFromSources()、IngestMail/Events/Inquiries()、ProjectHash()、BriefFilePath()、dumpCompletedHour()、DumpAllHours()。
迁移:
- m011:首次运行时从 mail/events/inquiries 重建 session.jsonl,回填全部历史到
brief/projects/<hash>/history/ - m012:每次启动从源重建(幂等,去重安全)
删除了 verbose.go(-192 行)——完全被替代。
菜谱系统升级
菜谱自带技能包
菜谱现在可以包含 skill 目录。TUI 启动时自动 symlink 到 .skills/,卸载菜谱后自动清理过期链接。
语言回退链:wen → zh → en → root。LinkRecipeSkills() 按优先级处理:内置菜谱 → 自定义 → agora 导入。PruneStaleSkillSymlinks() 清理失效链接。
recipe.json 清单
每个菜谱自带 recipe.json 元数据文件(名称、描述),用于选择器显示。新增 RecipeInfo 结构体 + LoadRecipeInfo() 函数。支持导入菜谱识别。
Covenant 和 Procedures 覆盖
菜谱可按语言覆盖 covenant.md 和 procedures.md。通过 ResolveCovenantPath() / ResolveProceduresPath() 加语言回退解析。
lingtai-recipe 技能包
中英双语自文档技能——agent 可通过 skills() 查阅菜谱系统的完整文档。
默认菜谱
从 adaptive 改为 greeter。
Markdown 查看器
可复用的双栏 Bubble Tea 组件(MarkdownViewerModel)——左列表 + 右渲染视口,支持键盘和鼠标导航。
替代了 /skills 视图和菜谱预览的重复实现。skills.go 从 ~284 行降至 ~50 行,firstrun.go 菜谱预览从 ~226 行降至 ~115 行。
微信插件(WeChat Addon)
从零实现腾讯 iLink Bot 协议,横跨两个仓库。
内核侧(Python — 6 个模块)
| 模块 | 功能 |
|---|---|
types.py | 协议数据类——MessageItemType(TEXT/IMAGE/VOICE/FILE/VIDEO)、WeixinMessage、序列化函数 |
api.py | 5 个 async HTTP 端点封装——get_qrcode()、poll_qr_status()、get_updates()、send_message()、get_upload_url()、get_config() |
login.py | cli_login() — 终端显示二维码,轮询扫码状态,保存 credentials.json(mode 0600) |
media.py | download_media()、decode_voice()(SILK→WAV via pilk)、upload_media()、make_media_item() |
manager.py | WechatManager — 守护线程 poll loop、8 个 action handler(send/check/read/reply/search/contacts/add_contact/remove_contact)、原子文件写入、线程安全共享状态 |
__init__.py | setup() 入口——加载 config + credentials,创建 manager,注册 wechat tool |
3 个测试文件共 21 个测试函数。审计后修复:async/sync 边界(run_coroutine_threadsafe)、stop() 死锁移除、threading.Lock 保护数据竞争、自消息过滤、4000 字符文本分片。
TUI 侧(Go)
lingtai-wechat-setup技能包——引导扫码登录(无需静态 API 密钥)wechat.jsonc配置模板,含注释- 注册到
AllAddons,三语 i18n
智谱(Zhipu)接入
智谱 GLM-5.1 全栈接入。
TUI 侧: 注册为 preset(OpenAI 兼容),环境变量 ZHIPU_API_KEY,加入 /setup 流程和 /doctor 诊断。
内核侧——新增服务:
ZhipuVisionService— MCP stdio 子进程调@z_ai/mcp-server,传文件路径(非 base64)ZhipuSearchService— HTTP MCP 远程调web_search_prime端点resolve_z_ai_mode()— 按 base_url 自动区分 ZAI(国际)vs ZHIPU(国内)模式
MCP 基础设施: 新增 HTTPMCPClient 类(+182 行),支持远程 HTTP MCP 服务器。servers.json 新增 "type": "http" 格式。
内核能力增强
Psyche — Memory Append
新增 memory append action:将文件钉为只读引用,每次 memory load 时重新读取,不写入 memory.md,抗凝蜕。主要用途:秘书整合时钉住 profile + journal 作为参考。Token 上限 100k,二进制文件检测,持久化到 system/memory_append.json。
同时修正了 schema enum:"character" → "lingtai"。
Email — Filter 子对象
email(check) 新增 filter 参数:sort(newest/oldest)、from、subject、contains(子串匹配)、after/before(ISO 8601 日期范围)、unread_only、has_attachments、truncate(预览字符限制)。返回结果上限 10k tokens。
Procedures 系统提示节
新增 procedures 系统提示节(与 principle、covenant 平级)。集中化凝蜕流程说明,减少 tool description 中的重复。
Refresh 锁轮询
修复竞态:/refresh 从固定 3s sleep 改为轮询 .agent.lock 释放(最多 60s)。
系统级 Procedures
三语操作规程(procedures/en/、zh/、wen/),通过 m009 迁移种入所有 agent 的 system/procedures.md。菜谱可覆盖。
其他
- HuggingFace 同步 CI — GitHub Action 过滤二进制文件,每次 push main 自动同步
- MCP 技能包 —
lingtai-mcp(141 行),文档化外部 MCP 服务器注册流程 - TUI 恢复 —
~/.lingtai-tui被删后优雅恢复,不重复创建 admin - 能力可用性检查 — fallback 到 preset manifest
- 旧插件路径警告 — m010 迁移检测
~/.lingtai-tui/addons/ - 插件 SKILL.md 路径修正 — feishu/imap/telegram 配置路径修正
迁移一览
| 版本 | 名称 | 说明 |
|---|---|---|
| m009 | procedures | 种入三语 procedures.md 到所有 agent |
| m010 | legacy_addons_warn | 检测旧插件路径,打印警告 |
| m011 | session_backfill | 从 mail/events/inquiries 重建 session.jsonl,回填历史 |
| m012 | session_resort | 每次启动从源重建 session.jsonl |
当前版本:12