ymq
|
3f9ae7a08f
|
feat: agent加propose_skill自省handler(提skill化建议写提议表)
|
2026-08-16 19:16:53 +08:00 |
|
ymq
|
47dcd3c11e
|
fix: run_command只对危险命令确认(普通命令自动执行),避免confirm卡死
|
2026-08-16 18:52:51 +08:00 |
|
ymq
|
2fe0f3ef29
|
feat: list_packs/install_pack handler+/skills限前20个
|
2026-08-16 18:19:40 +08:00 |
|
ymq
|
50c9220d2d
|
feat: 技能检索LLM语义匹配+SDLC能力声明功能菜单(项目/Bug/测试/迭代)
|
2026-08-16 17:19:48 +08:00 |
|
ymq
|
488ba4daa4
|
feat: skill_loader base_dir动态解析到机构工作目录(多租户隔离)
|
2026-08-16 15:51:33 +08:00 |
|
ymq
|
4e7157c161
|
feat: load_skill工具handler(按需加载技能正文)
|
2026-08-15 19:43:11 +08:00 |
|
ymq
|
2fded1f83c
|
fix: read_file支持解析docx(zipfile提取文本),避免agent读docx报错绕去run_command探测
|
2026-08-15 19:23:32 +08:00 |
|
ymq
|
2cc259bc7d
|
feat: SDLC角色迁移到能力包(SDL_ROLES)+role_agent_run从能力包取角色定义+记忆按pipeline/project分域加载
|
2026-08-15 09:46:42 +08:00 |
|
ymq
|
e6344be8e9
|
fix: _build_ctx补pipeline_id字段,修复/help列不出产线命令
|
2026-08-15 09:40:31 +08:00 |
|
ymq
|
c05949d1cf
|
fix: pipeline_id为空时fallback到默认产线,修复产线slash匹配不到
|
2026-08-15 09:39:43 +08:00 |
|
ymq
|
c87b8d94ed
|
feat: 通用slash命令(/help/status/reset/tools/skills/model)+SDLC产线slash(/tasks/diagnose)+AgentExecutor按role加载技能
|
2026-08-15 09:38:31 +08:00 |
|
ymq
|
0a90f60315
|
refactor: SDLC能力迁移到sdlc_ability可插拔能力包——14工具+prompt+handler独立函数,AgentExecutor按pipeline_id动态挂载,删除硬编码SDLC handler
|
2026-08-15 09:26:01 +08:00 |
|
ymq
|
eaa23d1eff
|
feat: AgentExecutor实现通用工具集——文件读写/搜索/会话搜索/todo/子代理委派+workspace_dir解析
|
2026-08-15 09:04:49 +08:00 |
|
ymq
|
1860179a39
|
refactor: 删auto-inject硬编码关键词强制路由,reply/ask_user为合法终止动作,恢复agent诚实降级能力
|
2026-08-15 08:19:03 +08:00 |
|
ymq
|
8c0d63efb1
|
fix: LLM 调用加瞬时错误重试(3次) + 超时 180s→300s(connect 30s);心跳回收阈值 10→20 分钟防误杀慢任务
- llm_bridge: 抽出 _post_chat_completion,超时/连接错误/429/5xx 重试3次退避;total=300 connect=30
- init.py: 僵尸回收阈值对齐 LLM 最坏单轮时长(3×300s≈15min),20分钟
- agent_loop_v2: diagnose 心跳超时判定 10→20 分钟
|
2026-08-15 00:46:30 +08:00 |
|
ymq
|
00a7e77629
|
feat: diagnose_project 运行中任务返回 claimed_by+心跳陈旧度,agent 可直接识别僵尸任务
|
2026-08-15 00:27:12 +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 |
|
ymq
|
d2f3caf8a7
|
refactor: workspace 路径解析收敛到 workspace.py,dspy 消除重复
- workspace.py 加 get_workspace_dir/get_workspace_base + load_workspace 注册到 ServerEnv
- 8 个 workspace dspy 内联重复的'读 workspace_base + 查 project 算 ws_dir'改为调 get_workspace_dir
- _t_create_project 复用 get_workspace_base(删掉死代码 _get_param)
- workspace.py 从 untracked 变为已跟踪提交
|
2026-08-14 18:07:33 +08:00 |
|
ymq
|
bd3a9a5abd
|
refactor: workspace_base 从 appbase params 表读(去硬编码,带默认值兜底)
|
2026-08-14 15:59:49 +08:00 |
|
ymq
|
e48cb2c62c
|
fix: create_project workspace_dir 硬编码(workspace.py 未提交,避免 import 依赖)
|
2026-08-14 15:49:05 +08:00 |
|
ymq
|
802143b723
|
fix: create_project 设置 workspace_dir + org_id 并创建项目专属目录
根因:_t_create_project 未设置 workspace_dir,导致 _resolve_workspace 回退到 ~/pipeline_ws/default,所有项目共用同一目录,设计文档互相覆盖;前端 get_workspace_path 又回退到 /d/pipeline/workspaces/<org>/<项目名>,两处不一致导致工作空间浏览器显示'不可用'而文档实际写在 default
|
2026-08-14 15:44:55 +08:00 |
|
ymq
|
07383a9dd5
|
fix: switch_project/create_project 持久化当前项目 + auto-inject 新需求识别
- _persist_project 持久化 current_project_id 到 pipeline_agent_settings(只改内存字段导致下一轮回退旧项目)
- auto-inject 兜底识别新需求描述 → create_task 而非 diagnose/list_tasks
|
2026-08-14 13:59:54 +08:00 |
|
p
|
d89ec3c784
|
fix: git 版本管理链路跑通 — role agent clone 时机 + git_clone 工具 + repo_dir 兼容
|
2026-08-13 18:57:06 +08:00 |
|
ymq
|
49338b4fc7
|
fix: 修复 answer_question/add_bug/list_questions/diagnose 的 DB 列名错误
- answer_question: answered=1 → status='answered'(表无answered列)
- list_questions: answered IS NULL → status='pending'
- diagnose_project: 问题计数 answered IS NULL → status='pending'
- add_bug: 补 iteration_id(查项目默认迭代)
|
2026-08-13 17:27:41 +08:00 |
|
ymq
|
094d66d42b
|
fix: 列表/诊断返回完整ID,详情工具支持前缀匹配兜底
- _t_list_tasks 返回完整ID(不再截断8位)
- _t_list_questions 返回完整ID(去掉Q前缀+截断)
- _t_list_deliverables 返回完整ID
- _t_diagnose_project 列出失败/待执行任务完整ID
- _t_task_detail/_t_answer_question/_t_view_deliverable 支持8位前缀匹配兜底
|
2026-08-13 17:23:19 +08:00 |
|
ymq
|
acda8bb7e7
|
fix: _estimate_tokens/_summarize 处理 native 的 content=None
|
2026-08-13 17:08:42 +08:00 |
|
ymq
|
0e5368a894
|
feat: cockpit agent 切原生 function calling
- llm_bridge 新增 llm_call_msgs_native 支持 tools 参数+解析 tool_calls
- agent_loop_v2._call_llm 优先走 native function calling,失败回退文本
- run loop 处理原生 tool_calls(role=tool 回填)
- _init_components 把 config.tools 注册进 ToolRegistry(修复 registry 空导致 tools_description 为空、schema 为空的 bug)
|
2026-08-13 17:05:26 +08:00 |
|
ymq
|
2b615f76a9
|
debug: v2.1 marker
|
2026-08-11 15:35:17 +08:00 |
|
ymq
|
aaad55cdab
|
feat: markdown table format for list_tasks with emoji
|
2026-08-11 15:11:09 +08:00 |
|
ymq
|
d8f810bf8d
|
fix: aliases, questions SQL, limit auto-inject to 3
|
2026-08-11 13:57:25 +08:00 |
|
ymq
|
e558bad2c9
|
fix: skip ERROR results for tc count; remove debug yield
|
2026-08-11 13:19:03 +08:00 |
|
ymq
|
744f8f6aa0
|
debug: raw text yield to test loop entry
|
2026-08-11 13:16:50 +08:00 |
|
ymq
|
bf4413b81c
|
debug: stderr log instead of yield
|
2026-08-11 13:16:17 +08:00 |
|
ymq
|
c091e98df1
|
debug: show raw LLM output
|
2026-08-11 13:14:22 +08:00 |
|
ymq
|
0e94c230ee
|
debug: trace auto-inject behavior
|
2026-08-11 13:13:36 +08:00 |
|
ymq
|
23ff786c92
|
feat: push LLM to continue after 1-2 tool calls
|
2026-08-11 13:11:17 +08:00 |
|
ymq
|
92af7603e0
|
fix: don't count unknown tool calls toward tool_call_count
|
2026-08-10 17:58:42 +08:00 |
|
ymq
|
91dabd7b4c
|
fix: auto-inject context-aware tool, works on any turn
|
2026-08-10 17:57:53 +08:00 |
|
ymq
|
23a04d2b94
|
fix: add get_task_list alias
|
2026-08-10 17:56:11 +08:00 |
|
ymq
|
9ffee5780c
|
feat: auto-inject tool_call on first reply (deepseek fails to follow prompt)
|
2026-08-10 17:54:57 +08:00 |
|
ymq
|
ac943de9f1
|
fix: replace {project_name} placeholder
|
2026-08-10 17:54:05 +08:00 |
|
ymq
|
fff7bace28
|
fix: handle missing answered column in questions table
|
2026-08-10 17:53:27 +08:00 |
|
ymq
|
3b1b6c8e43
|
fix: show project name instead of ID in prompt
|
2026-08-10 17:52:19 +08:00 |
|
ymq
|
945e43cf62
|
fix: replace {tools_description} placeholder in system prompt
|
2026-08-10 17:50:12 +08:00 |
|
ymq
|
9ea2b498d6
|
feat: skill loader 三级隔离 + org_id auto-load
|
2026-08-10 17:07:22 +08:00 |
|
ymq
|
c249e872fb
|
fix: add tool aliases (get_task, get_deliverable)
|
2026-08-10 11:17:13 +08:00 |
|
ymq
|
2d6709ee33
|
feat: Agent v2 执行引擎 - AgentExecutor with compression/memory/skills
|
2026-08-10 11:06:42 +08:00 |
|