Skip to content

【自管理 Agent】D 任务底座、维护动作与演化事件#2

Open
dydpop wants to merge 4 commits into
mainfrom
agents-dev
Open

【自管理 Agent】D 任务底座、维护动作与演化事件#2
dydpop wants to merge 4 commits into
mainfrom
agents-dev

Conversation

@dydpop

@dydpop dydpop commented May 3, 2026

Copy link
Copy Markdown
Collaborator

完成内容

本 PR 对应 D 任务 Self-Management Agents,当前从 agents-dev 提交到 main。主要完成 4 个阶段:

  1. 自管理 Agent 底座稳定

    • 清理 Builder / Auditor / Maintainer / Repair 的 LLM-facing prompt 和 fallback。
    • Builder 增加名称、skill_type、schema、confidence、prompt 的基础归一化。
    • Auditor 增加 required/properties、prompt 变量、危险代码、命名规范检查。
    • Repair 在 LLM 失败或 JSON 无效时返回稳定错误,不把异常直接抛到 API。
  2. Builder + Auditor 质量增强

    • Builder prompt 增加 few-shot 风格要求,覆盖 atomic / functional / strategic Skill。
    • Builder 自动补齐 prompt 变量到 input_schema.properties,并清理无效 required 字段。
    • Auditor 增加实现完整性、输出 schema、危险代码硬失败、功能/策略 Skill 组合建议。
    • audit_score 改为轻量加权评分,继续保持 [0, 1]
  3. Maintainer 维护动作收口

    • repair():空 prompt/code 时清晰失败,不生成不可用实现。
    • split():限制最多 5 个子 Skill,跳过空子项,归一化名称、描述和 prompt。
    • merge():支持合并两个相似 Skill,返回合并 Skill,并记录 source ids、rationale、confidence。
    • deprecate():返回废弃决策,记录 reason 和可选 replacement id,不直接改 Wiki 状态。
  4. Evolution 事件与 WebSocket 健康告警

    • Evolution API 层新增事件广播:
      • health_degraded
      • health_critical
      • evolution_cycle_done
    • REST response 字段不变,不改飞书锁定接口。
    • WebSocket 继续沿用当前 { "event": "...", "data": {} } 格式,E 前端已兼容。
    • 广播失败不影响 REST API 返回。
    • 健康事件有 30 秒服务端冷却窗口,避免 Dashboard 自动刷新触发重复告警循环。

接口边界

  • 没有修改 docs/interfaces.md
  • 没有修改 docs/architecture.md
  • 没有新增依赖。
  • 没有修改 Evolution REST response model 字段。
  • 没有重写 WebSocket 契约。
  • D 侧只保证事件可发出,E 侧继续负责展示和刷新。

验证结果

后端基础检查:

python -m compileall -q skillos\api skillos\layers\feedback_evolution skillos\layers\skill_management
python -m pytest tests\test_skill_management_phase1.py -q
python -m pytest skillos\tests\test_governance_runtime_evolution.py -q
python -m pytest skillos\tests\test_layers.py -q
git diff --check

结果:

  • tests/test_skill_management_phase1.py:23 passed
  • skillos/tests/test_governance_runtime_evolution.py:48 passed
  • skillos/tests/test_layers.py:40 passed
  • git diff --check:通过

本地 API / WebSocket 联调:

  • GET /health 返回正常。
  • GET /api/v1/evolution/health 返回 16 个 demo skills,当前全部 healthy。
  • POST /api/v1/evolution/cycle 返回 EvolutionCycleResponse
  • WebSocket /ws 能收到 connected
  • 手动调用 /api/v1/evolution/cycle 后,WebSocket 能收到 evolution_cycle_done,且 cycle_id 与 REST 返回一致。

前端浏览器冒烟:

  • /evolution 可打开,显示 16 个健康 Skill。
  • / Dashboard 可打开,健康接口和统计接口返回 200。
  • /demo 可打开,页面不白屏。

已知非阻塞项

  • 本地没有真实 team API key,因此本 PR 只完成结构级联调和 fallback/本地 demo 验证;真实 LLM 质量验证需要后续组内联调补齐。
  • 前端 npm run build 当前失败在已有 E/前端类型问题上:
    • SelfEvolutionDemo.tsx 的 Ant Design Timeline size 类型不兼容。
    • SkillGraph.tsx 缺少 @antv/g6 类型声明。
    • VersionControl.tsxDiffData 类型转换不兼容。
      这些不属于 D 分支本阶段改动。
  • 浏览器控制台仍有 Ant Design deprecated warning,例如 Card borderedStatistic valueStyleProgress width
  • 后端测试有既有 datetime.utcnow() / pythonjsonlogger deprecation warning,不影响通过。
  • seed demo 数据中仍有部分中文乱码,这是既有 demo 数据问题,不是 D 第五阶段新引入。

希望重点 review

  • Builder / Auditor 的 prompt 和 fallback 是否符合组内预期。
  • Auditor 的本地规则是否过严或过松。
  • Maintainer 的 repair / split / merge / deprecate 四类维护动作是否足够稳定。
  • Evolution 健康事件和演化完成事件是否满足 E 侧展示需要。
  • 是否需要在后续阶段增加后台定时演化周期。

@dydpop dydpop marked this pull request as ready for review May 3, 2026 11:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant