34 Commits

Author SHA1 Message Date
ymq
bf819f3b79 refactor(agent_loop): 状态机迁移走 task 能力 + 角色规范化 agent.{role}
- 角色规范: agent 角色 agent.{role}(_normalize_role 补前缀+ROLE_ALIASES/ROLE_CHAIN/SDL_ROLES 改规范名),
  人角色 {orgtype}.{role}(默认 owner.superuser)
- role_agent_run/pm_review_run/handle_failed_task 硬编码状态 SQL 改 task_capability 工具
  (submit/approve/reject/complete/mark_failed/retry,CAS+审计)
- communication/questions/sdlc_ability 默认 handler 角色规范化(main_agent→agent.main_agent, customer→owner.superuser)
- 通用助手路径(AgentExecutor)不动,保持 hermes 式自由对话
2026-08-16 23:51:55 +08:00
ymq
6707cabedc refactor(team-communication): 问题冒泡改为显式路由,规范移交 skill
规范(团队角色/问题类型/冒泡路径)移交 team-communication skill,由 LLM 读 skill 决策;
系统只固化通用问题工具,不读配置表、不存路径快照:
- communication.py: raise/resolve/escalate/list_for 显式路由,
  escalate 显式传 next_handler;current_handler_role/agentid 两列确定性过滤
- questions.py: 向后兼容层适配
- agent_loop.py: need_info/review_reject/fault_report 显式 first_handler_role
- sdlc_ability.py: escalate_question 显式转 customer
- models: 去 escalation_path/pos,加 current_handler_role/agentid
2026-08-16 22:08:00 +08:00
ymq
4f2c6da6cf feat(team-communication): 通用问题冒泡引擎(多agent感知)
- communication.py: raise/resolve/escalate/list_for,问题类型→冒泡路径,处理方=role+agentid
- questions.py: 向后兼容层,委托 communication
- agent_loop.py: 角色提问(need_info)/PM退回(review_reject)/故障(fault_report)走 raise_problem;
  _build_qna_section 按 handler 路由注入;PM approved 只答结 review_reject
- sdlc_ability.py: list_questions/answer_question/escalate_question 按 handler 路由
- models: pipeline_agent_questions 加 from_agentid/problem_type/escalation_path/escalation_pos
2026-08-16 21:25:39 +08:00
ymq
1da53a0edd fix: 问题回路修复——(1)角色agent注入PM退回意见(pending问题)而非只查answered (2)review_complete同步交付件approved (3)PM通过后标记pending问题answered避免堆积 2026-08-16 20:47:36 +08:00
ymq
82b0944424 feat: 全局并发agent数限制(max_concurrent_agents params表)+机构工作目录workspace_base动态化(_is_safe_workdir读params表) 2026-08-15 10:00:03 +08:00
ymq
2cc259bc7d feat: SDLC角色迁移到能力包(SDL_ROLES)+role_agent_run从能力包取角色定义+记忆按pipeline/project分域加载 2026-08-15 09:46:42 +08:00
ymq
099c283562 fix: PM审核循环加auto-inject兜底,最后两轮强制review_*决策,防审核超时死循环 2026-08-15 02:04:41 +08:00
ymq
14a42aac7b fix: SELECT-only 事务显式 COMMIT,修复 MDL 元数据锁泄漏阻塞 DDL
failed poller / handle_failed_task 的 SELECT-only 事务未提交,连接回池后仍持有元数据锁,
导致 ALTER TABLE ADD COLUMN 卡死并阻塞整表。改为 SELECT 后显式 COMMIT 释放锁。
2026-08-15 01:09:05 +08:00
ymq
aa0dcc9c04 feat: 失败任务处理第二层——failed poller 自动重跑(最多3次)+报故障给用户
- pipeline_tasks 加 retry_count/last_error 列(启动时幂等 DDL)
- role/pm agent 失败时记录 last_error(含异常类型)
- handle_failed_task: 瞬时错误(超时/连接/5xx/429)重跑,永久错误或重试>=3次报故障(建问题通知用户,任务置 waiting)
- init.py: 新增 failed poller 每60s扫描 failed 任务,role任务由pm上报、pm任务由cockpit上报
2026-08-15 00:57:05 +08:00
ymq
bc5ce2f06d fix: 任务链卡死根治 — 心跳+stale回收+claimed_by僵尸锁清除
- questions.py: agent_ask/answer_question 置 waiting/submitted 时清 claimed_by,否则 poll 器永不重新认领
- agent_loop_v2.py: _t_answer_question 回答后恢复任务 waiting→submitted(此前只标记问题已答,任务永久卡 waiting)
- agent_loop.py: _claim_task 加 claimed_by IS NULL 原子认领 + updated_at 心跳;role/pm 循环心跳 COMMIT;pm 认领保持 review 态
- init.py: role poller 回收僵尸 running 任务、pm poller 回收僵尸 review 任务(心跳超时 10 分钟)
2026-08-15 00:11:36 +08:00
p
d35800a100 fix: git commit 不依赖 files_written,遍历 repos/ 下所有仓库自动提交 2026-08-14 11:36:22 +08:00
p
b3ddb59e2e fix: 角色agent轮数15→30 + read_file截断8000→30000(减少分段读浪费) 2026-08-14 11:27:02 +08:00
p
edd0a946a4 fix: role_agent_run 切原生 function calling(deliver/ask 作工具 + tool_calls 循环) 2026-08-14 11:14:25 +08:00
p
81cc0b3344 fix: XML parameter 支持 string="true" 类型属性 2026-08-14 11:11:01 +08:00
p
6c878a2abf fix: _parse_agent_action 解析 deepseek XML tool_calls(原生 FC 输出格式) 2026-08-14 11:04:03 +08:00
p
d89ec3c784 fix: git 版本管理链路跑通 — role agent clone 时机 + git_clone 工具 + repo_dir 兼容 2026-08-13 18:57:06 +08:00
ymq
99ebd88100 fix: clear claimed_by on PM reject 2026-08-11 15:04:46 +08:00
ymq
f9aa6f21c2 feat: enforce project has at least one app, each app at least one module 2026-08-09 23:54:05 +08:00
ymq
29ae78da32 fix: project repo docs-only — source in module repos, modules/ and apps/ for references 2026-08-09 23:50:39 +08:00
ymq
07066001fe feat: SDLC repo standard — each role knows exact output paths and deliverable specs 2026-08-09 23:46:08 +08:00
ymq
851b2b2066 refactor: PM review to LLM tool-loop — can inspect code files before deciding 2026-08-09 20:15:09 +08:00
ymq
afa6972903 refactor: role agent to LLM tool-loop with read/write/shell/git tools + llm_call_msgs 2026-08-09 17:34:36 +08:00
ymq
3b1718783a fix: COMMIT after claim_task to release row lock before LLM call 2026-08-08 13:51:52 +08:00
ymq
6b295fc8ca agent: inject skills from params into prompt; skills_dir fixed 2026-08-08 11:51:48 +08:00
ymq
74ce3339d2 v3.4.0: agents produce real code files + git push + PM clones repos
- All agents can write code files via 'files' array in output JSON
- Auto git commit+push after code file creation
- PM agent clones project repos on first review
- PM review shows repository state
- shell_exec now allows ~/pipeline_ws
- Role-specific prompts guide code/file output
2026-08-08 11:42:49 +08:00
ymq
a897182404 workspace: use ~/pipeline_ws as default (NFS persistent) 2026-08-08 11:27:02 +08:00
ymq
83ad318801 fix: add owner_id to _create_next_task INSERT 2026-08-08 11:16:23 +08:00
ymq
e76fa0fc47 fix: PM _claim_task match_role=False to review all roles 2026-08-08 11:15:03 +08:00
ymq
afe076ec5b fix: use /tmp/pipeline_ws (pipeline-owned) for workspace; clear claimed_by on review 2026-08-08 11:12:52 +08:00
ymq
926bc5623f fix: clear claimed_by when setting state=review (PM poller requires NULL) 2026-08-08 11:09:55 +08:00
ymq
0270922205 v3.3.0: PM agent + task chain + workspace + file output 2026-08-08 10:36:04 +08:00
4c0b349718 feat: 后台轮询器 — add_startup 自动执行 role_task
- _role_poller 每10秒扫描 pipeline_tasks 中 submitted 的 role_task
- 逐条 dispatch 给对应角色 agent_loop 异步执行
- 修复 agent_loop 中 agent_ask 导入为相对导入
2026-08-05 17:20:26 +08:00
4cb406003e feat(v3.2.0): 主agent+角色agent架构 — role任务认领/问题回路
- pipeline_tasks 增加 role/claimed_by 字段+索引(存量库需ALTER)
- agent_loop 重写为角色循环:原子认领(role匹配+令牌校验)→LLM执行→交付/need_info提问
- 角色别名归一化(developer→develop等),ROLE_PROMPT改replace防花括号崩溃
- questions.py 新增问题回路:agent_ask/answer_question/forward_question/list_questions
- init.py 注册 pipeline_role_submit 与问题回路 env 接口
2026-08-05 12:58:52 +08:00
59e56b5e9c feat: Phase 2+4 — agent_loop engine + project agent config 2026-08-02 14:59:32 +08:00