Skip to content

将 my-agent 提升为 dev/mteam 官方内置 agent 的稳定性路线 #21

Description

@zhuqingyv

MTEAM 内置交付修订(2026-07-15,最高优先级)

本 Issue 继续作为 MA core release-ready 路线,并增加 zimoos/mteam#185 的宿主交付契约。与下方旧口径冲突时以本节为准。

必须交付

  • 提供复用同一 core loop 的 headless ACP/stdio 入口,覆盖 prompt、cancel、session、permission、tool、usage、crash 和 graceful shutdown。
  • MTEAM host mode 不读取/写入 ~/.my-agent Provider secret,不接收长期 ZimoOS Token;Provider 由宿主短时 capability 提供。
  • ZimoOS 最新 Frame 保持 request-only slot,历史只保存 Action、摘要和审计,禁止重复整帧。
  • ContextManager active/pool/patch 当前不是 provider request 的唯一来源;必须先接入自动请求主链并通过长任务基准,才能勾选“上下文与长任务可恢复”。
  • 发布前运行 12 个不少于 2 小时的真实 Mission,与 Codex/Claude 使用相同目标和完成标准,记录约束丢失、过期 Frame、工具配对、人工纠偏、Token、缓存和成本。
  • Agora 继续作为本地 Provider 和 MemoryPatch 引擎,但 memory status/mount/internalize/rollback 必须迁到 Host 控制面;普通对话模型不再看到 MemoryPatch 管理工具、patch/binding id 或内部术语。
  • 产出 macOS arm64 / Windows x64 固定版本 portable artifact、manifest 和 SHA-256;正式 MTEAM 包不得回退 PATH/npx。
  • 修复当前 Agora 真实 MCP schema 漂移;核心 test/e2e 不得以 skip 代替通过。

依赖与验收

  • MTEAM Runtime/identity 契约:zimoos/mteam#182。
  • MTEAM Adapter/packaging/Agora host 集成:zimoos/mteam#185。
  • 只有 my-agent core 门禁、MTEAM stdio integration、clean-profile packaged Mission 三层都通过,才能宣称 MA 可内置发布。

根目标

my-agent 达到 dev/mteam 官方内置 coding agent 的 release-ready 稳定性门槛:可测试、工具协议可靠、上下文不丢、长任务可恢复、失败可观测。

目标模式规则

后续 agent 以本 issue 为路线图时必须遵守:

目标树

1. 测试门禁可信(P0,承接 #14

Done:

  • npm run build 通过。
  • npm test 全绿。
  • npm run benchmark:dry 全绿。
  • L3 dry-run 不再被 L0-L2 schema 卡死,或明确 skip/配置错误。
  • 真实模型不可用时明确 skip,不伪装成业务失败。
  • 核心循环单测覆盖 parser、executor、error tracker、runTask 最小路径。

2. 工具协议稳定(P0,承接 #16/#17

Done:

  • 每次请求前有 message invariant 检查:无 orphan tool,无未回填 assistant.tool_calls
  • required 缺失、类型错误、未知字段能在执行前校验并回填 tool result。
  • MCP timeout/退出/异常都回填明确 tool result,agent loop 不崩。
  • 空参数、模型截断、重复调用有可恢复策略。
  • 危险命令在 deny/非 TTY 下必拦截,TTY confirm 可批准。
  • 工具回退不能让必须操作工具的任务伪装成纯文本完成。

3. 上下文与长任务可恢复(P0/P1,承接 #19/#18

Done:

  • provider request 默认来自 ContextManager active context,不是完整历史回放。
  • user/system 不可变。
  • tool_call/tool_result 不拆组。
  • pool 可搜索/召回被压缩证据,召回后进入 Active Context。
  • 50+ 轮长对话后仍能找回早期关键事实。
  • compact 只是 fallback;summarizer 异常、非 JSON、空摘要、短摘要都有确定性处理。

4. Benchmark / Release Gate(P1)

Done:

  • L0 通过率 100%。
  • L1 通过率 >= 90%。
  • L2 通过率 >= 80%。
  • L3 能稳定产出报告;不可运行时给出明确配置说明。
  • 报告包含:任务 ID、trace、工具调用序列、最终文本、耗时、失败分类。
  • CI 分层:PR 门禁、合并前门禁、每日/发版前门禁。

5. 观测能力(P2,承接 #20

Done:

  • ma watch --latest --once 可在非交互 shell 输出 snapshot。
  • 本地 WS 能看到 LLM 视角、context pool、visible transcript。
  • 默认只绑定 127.0.0.1
  • 不泄漏 API key、secret、环境变量原值。
  • 缺失/损坏 sidecar 不崩。

6. 类型边界硬化(P2,承接 #15

Done:

  • npx tsc --noEmit 通过。
  • as any/as unknown 有 inventory。
  • 优先清理影响工具协议、request building、context manager 的类型边界。
  • 保留的 SDK/协议边界断言有理由。
  • 不引入行为变化。

推荐执行顺序

  1. [Phase 3] 补齐核心循环的单元测试 #14:修测试入口和核心循环单测。
  2. benchmark:dry / L3 dry-run 入口。
  3. [Phase 5] 工具 Schema 简化与参数预校验 #16:工具参数预校验和可恢复错误提示。
  4. [Phase 6] 减少每轮工具数量,增加工具调用回退机制 #17:连续工具失败后的最小回退 MVP。
  5. [Feature] Task-level context manager with searchable session pool #19 + [Phase 7] 上下文压缩可靠性提升 #18:确认 ContextManager 是唯一在线上下文源,compact 只做 fallback。
  6. 建立 L0/L1/L2/L3 gate 和报告。
  7. [Context Watch] Add session watch WebSocket service for live context inspection #20:Context Watch v1 硬化。
  8. [Phase 4] 清理类型安全,消除 as any #15:类型边界清理。

非目标

  • 不在本路线中实现 Mnemo 或跨 session durable knowledge base。
  • 不做远程 watch/云端协作。
  • 不把所有成熟项目能力一次性搬进 my-agent。
  • 不以 prompt 调参替代可测试的协议与状态机。

总体验收

  • npm run buildnpm testnpm run benchmark:dry 全绿。
  • 工具失败不会污染历史,失败可恢复或可解释停止。
  • 长任务可持续推进,压缩后能召回关键事实。
  • benchmark/report 能支撑发版决策。
  • 每个子 issue 都有明确 Done 条件和非目标。

历史调查结论见下方 Agent A-D 评论。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions