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