muse-agent-example/docs/运行手册.md
zizi 3865ea89ab 裁决(旧文件处置): 废弃方法目录迁移计划,方法技能现行位置即为正式位置
- 处置清单 140 条「迁移后删除旧路径」(目标 .agent/skills/方法/)改判为
  「保留为 AI 方法参考」:运行时代码与宿主技能发现均不依赖该结构,
  发现走 AGENTS.md→目录.md→SKILL.md 渐进披露;改判移除迁移专用字段,
  保留溯源锚点
- 回填 14 条已物理删除但未勾选的删除/退出类条目(executed=true)
- action_groups 修正为按 action_group 聚合并新增改判组;顶层
  execution_state 附裁决说明;待办余 11 条(作者场景合并 8、分组索引 3)
- 运行手册同步裁决结论,替换「尚未执行、不能当死路径删」的过渡表述
2026-09-16 10:06:17 +08:00

6.9 KiB
Raw Blame History

运行手册

新版 Muse(agent-example 单用户作者工作台)的日常运行、备份与排障入口。能力状态与边界见文末。

1. 系统组成

组件 位置 说明
作者工作台服务 本机 muse 服务(uvicorn 127.0.0.1:8080) 唯一正式写入口;静态工作台随资源包发布
正式内容库 infra(100.64.0.8:5433)PG 实例,库 muse_migration_1fe755ea37684f9d926f3a0cb3e9c7f2 作品/章/正文/规则/样例权威;用途角色 muse_app/eval/maint 隔离
资源包 src/muse/资源/(构建身份见 工具/环境预检.py) 角色/操作/提示词/工作台前端
应用配置 配置/本机正式.toml、配置/本机维护.toml 非敏感实例配置由 Git 管理,不依附临时工作树;模板为 配置/应用.example.toml

2. 启动与停止

# 从 agent-example 仓库根启动;先确认 8080 没有其他实例。
# 日志、凭据和文件资产放在工作树之外,不能随迁移草稿一起清理。
umask 077
nohup .venv/bin/python -m muse 服务 配置/本机正式.toml \
  >> "$HOME/.local/share/muse/正式环境/服务日志.log" 2>&1 &
echo $! > "$HOME/.local/share/muse/正式环境/服务.pid"

# 健康
curl -s http://127.0.0.1:8080/health   # {"status":"alive"}
curl -s http://127.0.0.1:8080/ready    # 含数据库连通

# 停止:先核对记录的 PID 确为本机正式.toml 对应服务,再终止该 PID。
pid=$(cat "$HOME/.local/share/muse/正式环境/服务.pid")
ps -p "$pid" -o command=
# 人工核对后执行:kill "$pid"

浏览器访问 http://127.0.0.1:8080,用配置的口令文件登录。当前作者 ID 为 1,与正式库的 7 部作者作品一致;不得用模板的 author-local 替代。

配置与凭据恢复

  • 版本化范围:配置/本机正式.toml、配置/本机维护.toml 保存非敏感配置及受控引用;仅创建文件不代表已经提交 Git。
  • 本机受控根:~/.local/share/muse/正式环境/(目录 0700,凭据文件 0600)。三个数据库角色分别使用 muse_app.连接.txt、muse_eval.连接.txt、muse_maint.连接.txt;工作台使用 工作台口令.txt。
  • infra 凭据副本:SSH 个人-minione-ubuntu-infra-4c16g120g,目录 /opt/infra/private/muse-agent-example/。恢复时复制所需文件到本机受控根并核对权限;禁止输出凭据内容到日志或提交明文凭据。
  • 正式连接仅使用 PG 100.64.0.8:5433,带 keepalives=1 keepalives_idle=15 keepalives_interval=5 keepalives_count=3。Redis 与本项目无关。
  • 原迁移目录中的库外原文、草稿和切换回执尚未找回。当前文件根是恢复后新建的目录,不代表原文件资产已恢复。

3. 备份与恢复

# 完整备份(数据库 + 当前配置声明的文件根);输出目录必须全新。
# 备份客户端要求 pg_dump 17:`brew install libpq@17`(镜像源可用,keg-only),
# 执行时前置 PATH=/opt/homebrew/opt/libpq@17/bin:$PATH。项目自身 NOWAIT 取锁已提供
# 冲突保护,不再向 pg_dump 传 --lock-wait-timeout(PG17 客户端下会自杀)。
.venv/bin/python -m muse 数据维护 备份 配置/本机维护.toml <全新备份目录>
.venv/bin/python -m muse 数据维护 核对 <备份目录>
# 恢复必须使用明确指向全新空库的维护配置,不能覆盖正式库。
.venv/bin/python -m muse 数据维护 恢复 <新空库维护配置> <备份目录> --预期备份ID <backup_id>

服务器级备份:infra 容器原生 PG 17 pg_dump,以 muse_maint 执行;恢复后的数据库归档保存在 /opt/infra/private/muse-agent-example/backups/,本机副本在 ~/.local/share/muse/正式环境/数据库备份/。数据库单独归档不等于包含库外文件的完整备份,pg_restore --list 和哈希一致也不等于完成恢复演练。

4. 资源与代码更新

改代码/技能/提示词后:工具/构建资源包.py 重建 → 工具/环境预检.py 取新 resource_build_id → 更新应用配置 发布身份 → 重启服务。

5. 排障

症状 处置
长连接被掐(Tailscale 空闲断连) 连接串须含 keepalives=1 keepalives_idle=15 keepalives_interval=5 keepalives_count=3(守卫白名单已含)
写请求 SCOPE_DENIED 缺 Origin 头或来源不在 允许来源;浏览器正常访问即自带
工作台 404 资源不存在 资源包未随新身份重建/配置身份过期,按第 4 节处理
连接被拒 target_denied 端点/参数/角色不属于获准实例;检查连接串与允许实例记录
章后任务「抽取提案」失败 模型协议错误,证据里输出 token 等于上限 该提供方通道的模型默认产出推理(如 Claude 经 chat-completions 的 reasoning_content),把输出上限吃满;改用 Messages 协议(anthropic)并声明 thinking="off",实测网关会映射为 {"type":"disabled"}

6. 当前能力状态与边界(2026-09-16)

  • 内容迁移真实口径(2026-09-15 库内核对):旧库 15 作品中 8 部参考作品 10,777 章按合同留旧库;作者本体为「深渊机神」1 部 3 章,正文已以 W29 候选形态入库;6 部 E2E 遗留作品已由 W30 维护事务清理(回执见剩余收口)。台账 23,716 为追加式设计,终态不可改写。旧库已设库级只读封存,应用身份写入被机械拒绝。
  • 129 项功能全部有实现与自动验证(功能覆盖.json)。W25 工程验收已收口(规则资格/启停/浏览器审阅);6 条 role_agent 诊断场景有真实模型证据(W25-真实模型.xml,6 passed),文学效果仍不认证;pi-* 宿主变体需 MUSE_PI_NODE/MUSE_PI_PACKAGE,默认离线批次不跑。F12.03 专名对照已有专项离线用例。
  • 旧实现已按处置清单退出(web/app.py 旧工作台、旧 framework/ runtime/ muse/ 主体)。方法技能正式位置为 .agent/skills/写作|规划|诊断,作者场景在 .agent/作者/场景/(2026-09-16 裁决:迁往 .agent/skills/方法/ 的计划废弃——运行时与宿主技能发现均不依赖该结构,发现走 AGENTS.md→目录.md→SKILL.md 渐进披露;处置清单 140 条已改判「保留为 AI 方法参考」,不能当死路径删)。
  • W30 已验收(2026-09-16):章后处理接通——发布 post.extract 并提供方走 Messages 协议、抽取配置 post-extract v5(gen5)启用、服务 PID 96675;称量/进食两次真实采纳、来源过期拒绝与同版本重建均经唯一写入口 HTTP 完成并回查;分支比较 404 定性为无基线拒绝并用 create-branch 通道闭环;现行构建 21d850f7… 下完成最终完整备份 bkp-1f5591d80f… + 空库恢复演练 verified(152 表/158 关系/迁移 45,见剩余收口执行证据)。事实提案为空属该作品未登记事实结构本体,登记为作品初始化事项。