tzt
|
3f303a69c3
|
chore(v2): .gitignore 登记 extra/ 参考项目目录(不入库)
|
2026-09-19 10:18:16 +08:00 |
|
tzt
|
2d2c2184b9
|
feat(v2): T-M3 采纳 llmrouter pinch 三档裁剪——Architect 渲染超预算按相关性分档保留
- Workspace.render_for_architect:超 1200 token 时对 archive 行按与 query+goal
的字符 2-gram Dice 相似度分档——sim<0.25 先丢、sim<0.55 截断为 40% 摘要、
仍超限从低到高继续丢;保留行维持原插入序(前缀稳定),最近 4 行下限不变
(相比旧'从最旧整段丢',高相关事实在预算内留存更久)
- 顺带消除两项旧债:压缩态与首次渲染共用同一 parts 结构(格式漂移)、
裁剪循环不再每轮 deepcopy 全文档
- 修复本轮引入的缺陷:会话轮次 tool_calls 为 int 计数时清单提取迭代崩溃
(test_session_multi_turn 抓出,已加类型防御)
- 新增 tests/test_pinch_trim.py 4 项;全量 244 passed ×2(基线 230)
|
2026-09-19 09:40:43 +08:00 |
|
tzt
|
184c11199a
|
feat(v2): T-M2 采纳 pi branch-summarization——折叠摘要携带文件清单 + rollup 行带产物锚点
- AgentService._history_from_session:从全部轮次的 write_file/edit_file
工具调用提取已读写文件清单(去重/单路径裁 120 字符/封顶 20 个),以摘要轮
注入对话上下文——轮次滑出窗口后事实清单仍在(丢上下文不丢事实)
- Workspace.rollup:done 折叠行追加(产出: <artifact 锚点>),上下文折叠后
产物事实在 a:// 锚点体系内仍可寻址;既有子串断言全部兼容
- 新增 tests/test_branch_manifest.py 4 项
|
2026-09-19 09:32:33 +08:00 |
|
tzt
|
f7e8273434
|
feat(v2): T-M1 采纳 pi 会话树设计——AgentSession fork 分叉(parent_id/fork_point 血统 + 值拷贝隔离)
- SessionStore.fork(sid, turn_index, title):值拷贝 turns[:n+1] 生成新会话,
原会话不变;新会话记录 parent_id/fork_point(pi 的 id/parentId 树思想);
拷贝式而非共享存储引用——规避并发写冲突,会话体量小冗余可接受
- 旧会话数据无血统字段自然兼容(dict.get 语义,零迁移,对齐 pi 的版本迁移纪律)
- 新增 POST /agent/sessions/{sid}/fork 端点(404 = 会话不存在/分叉点越界)
- 新增 tests/test_session_fork.py 6 项(拷贝正确性/缺省语义/越界/深拷贝/
旧数据兼容/端点 200+404)
|
2026-09-19 09:29:57 +08:00 |
|
tzt
|
819c5cceaf
|
chore(v2): 外部优点融入前置锚点——本轮五项目吸收的回滚基线
|
2026-09-19 09:16:52 +08:00 |
|
tzt
|
8820e8da48
|
feat(v2): 架构与算法优化二轮——推理机不变量外提、知识库匹配预编译、协作循环增量索引
- inference.py(/chat/legacy 热路径):kb.match 循环不变量外提(原每步全量重扫+重排序,
最坏 O(steps×rules×patterns));fired 查重 list→set
- knowledge.py:Rule patterns 注册侧懒缓存小写副本(原每条规则每次匹配重复 lower);
match() 文本只 lower 一次(原逐规则重复);load() 的 yaml 文件名集合提到循环外
- worker.py:本地端点生成器 httpx.AsyncClient 懒建复用(原每步新建/销毁连接,
对齐 ArchitectClient 惯用法;协作循环最多 10 次生成免重复建连)
- pipeline.py(协作循环):plan_by_id O(1) 步定义查找;done 集合增量维护
(原每轮重建 progress+archive 扫描);领域只解析一次(原 _artifact_name 每步
全领域 kb.match);_deps_done 支持传入预填集合(保持旧签名兼容)
- v2stats.py:回合数分布改增量聚合(sum/max/分桶计数),summary() O(n)→O(1),
不再持有无界 list(修长时运行内存增长)
- gateway/agent.py + api.py:AgentService 运行计数 O(1) 化(原 register 全量扫描),
状态迁移收敛到 _transition_state 单一入口(api.py cancel/异常两处绕过点一并接入,
消除计数与状态脱节隐患);21 项 agent 测试全绿(两轮全量 230 passed 复核)
|
2026-09-18 23:45:35 +08:00 |
|
tzt
|
0767030f02
|
chore(v2): 优化前置锚点——本轮架构/算法优化的回滚基线
|
2026-09-18 23:03:04 +08:00 |
|
tzt
|
b2fa8c3c81
|
feat(v2): 架构与算法优化——语义缓存 2.37x、拓扑排序 O(V+E)、分类器确定性决胜
算法:
- RouterCache:语义条目写入时预计算向量范数、语义查找单遍完成(消除命中后二次 O(N) 查找)、
相似度=1.0 提前终止;微基准(3000 条目×200 查询):3986ms -> 1685ms,2.37x
- TaskGraph.topo_order:O(V²logV) 重排序/成员扫描 -> 邻接表+deque 的 O(V+E) Kahn,
输出顺序契约不变(初始就绪层按插入序、循环依赖按插入序兜底、未知依赖忽略)
- RuleClassifier:同分决胜按领域名字典序(与规则表排列无关),次高分 O(n) 扫描
工程卫生:
- .mimosa/(扫描器工作目录)加入 .gitignore 并移出索引
- test_review 抽样测试改用内联确定性 LCG,消除 2 个低危(不安全随机数)
测试:新增 11 项(topo 契约 6 + 缓存回归 3 + 分类器 2)
pytest 230 passed(基线 219 全绿 + 11)
|
2026-09-18 08:35:36 +08:00 |
|
tzt
|
e9cfb29b75
|
fix(v2): 补回快照缺失的 v1 遗留模块 + 安全加固,基线 219 全绿
基线修复(快照离线不可运行的根因):
- 从 ce0f617 补回 executors/knowledge/memory/planner/trace/inference 六模块
(v2 时代 router.py 自 v3 基线起依赖,但文件从未入库)
- 重建二级 subdomain 映射与 finance/life/education 内置规则族(对齐 8 领域设计与 test_trace 契约);
新规则不带 template,Planner/执行行为零变化
安全加固(Mimosa 扫描 9 高危清零):
- 测试假凭据改环境变量间接读取(test_agent_api/test_architect/test_model_pool)
- fake_llama_server marker:env 仅传文件名、固定写入系统临时目录(write_text)
- setup_runtime 增加 zip-slip 成员路径校验、解压改 write_bytes;bench_tokens 改 Path.open
- runtime 健康检查仅允许回环地址并改用 http.client 定点连接(防 SSRF)
- gateway/llama_manager 与 workspace 持久化改用 Path 安全 API
pytest 219 passed
|
2026-09-18 08:01:24 +08:00 |
|
tzt
|
8d77c8c0c0
|
docs(branch): 第二代快照说明——端云协同编程智能体(v2核心+v3 Web+v4模型池)
|
2026-09-15 10:02:06 +08:00 |
|
tzt
|
747d85c3ba
|
feat(v3): T29 收尾 + T31 dsh 功能对齐
T29 流式收尾:
- _stream_partial 每次流式调用前复位(防上次成功置位导致本次失败误抛不回退)
T31 dsh(deepseek-harness)功能对齐:
- OpenAICompatChat 重试退避:传输错误/408/429/5xx 指数退避(max_retries=2),4xx 不重试
- web_fetch 工具:公网 http/https 抓取,SSRF 防护(DNS 后拒绝私网/环回/链路本地/NAT64,
512KB/15s/12k 上限,二进制嗅探拒绝),agent.allow_net 开关(默认开)
- 原子写入:write_file/edit_file 临时文件 + os.replace(Windows EPERM 退避)
- 慢工具线程卸载:run_command/web_fetch/search_files 独立线程 + asyncio.sleep 轮询
- search_files:os.walk 修剪依赖目录(替代 rglob 全量物化),不跟随符号链接
- run_command:危险命令黑名单独立拦截 + 显式 COMSPEC/sh 解释器执行
- 重复调用提醒:同工具同参数第 3 次起回喂系统提示 + repeat_warning 事件
- 会话重命名:PATCH /agent/sessions/{sid} + 前端 ✎
- 前端:SettingsView 适配密钥打码(留空保留),SPA 重新构建
- 新增 tests/test_agent_features.py(9 项);全量 318 测试通过
|
2026-09-02 00:02:24 +08:00 |
|
tzt
|
ce3ba44de3
|
fix(v3): T30 安全加固(Mimosa 深度扫描驱动)
- 路径参数 ID 白名单(runs/agent/sessions),杀灭 Windows 反斜杠穿越(..%5C 直读 .env)
- artifacts 端点关押 + pipeline 工件名消毒(模型输出名剥路径成分)
- /llama/download dest 关押 models/ 内 + URL 协议白名单(先于 HF 别名转换)
- GET /config architect.api_key 打码(api_key_set + 前 6 位),PUT 空串=保留
- TrustedHostMiddleware 信任围栏(GATEWAY_TRUSTED_HOSTS 可覆盖)+ __main__ 默认 127.0.0.1
- review 抽样改 CSPRNG
- 新增 tests/test_security_hardening.py(13 项,全部离线)
|
2026-09-02 00:01:33 +08:00 |
|
tzt
|
ddef8bec1c
|
feat(v3): T29 token 级流式输出(SSE 流式解析 + delta 事件 + 打字机渲染,D10)
- OpenAICompatChat 默认 stream=True:httpx 流式解析 OpenAI chunk,
tool_calls 碎片按 index 组装(不在正文展示),include_usage 计量;
失败自动回退非流式一次(已有部分增量输出则如实抛出);
补 raise_for_status(修复流式 4xx 误入回退的缺陷)
- ToolLoop 增 on_delta(签名探测兼容 2/3 参 chat_fn);_loads_json_object 宽松解析
- DeltaThrottle >=48 字符节流落 delta 事件;单模型与两级模式(含规划者)接线
- 前端:streamText 打字机渲染 + 光标动画;工具/阶段事件到达时清空归档
- 配套修复:AgentView 闭包持有 push 前原始对象导致响应式丢失、过程事件不渲染
- 测试 +7(SSE 解析/碎片组装/回退/部分失败抛出/on_delta/节流/service delta 事件),
全量 296 passed
|
2026-09-01 23:41:45 +08:00 |
|
tzt
|
ca8add02e2
|
feat(v3): T28 操作审批流(dsh 式 allow-once/deny,fail-closed)
- ToolLoop 增 approval_hook:工具执行前挂起等待用户裁决,拒绝/异常折叠为
失败结果回喂模型(可改道),fail-closed
- 策略 agent.approval_policy:off | dangerous(写/编辑/命令询问,只读放行,默认)| all;
approval_timeout_s 超时自动拒绝(轮询实现,规避 portal 循环下 wait_for 定时器不可靠)
- POST /agent/{id}/approve 裁决端点;approval_request/decided 事件对进 SSE 与审计
- 前端:运行中审批卡(工具名+参数预览+拒绝/允许一次),composer 审批策略 chip
- 测试 +8(策略矩阵/拒绝回喂/允许执行/fail-closed/超时/端点分支),全量 289 passed
|
2026-09-01 23:12:26 +08:00 |
|
tzt
|
7d11ae2644
|
feat(v3): T27 会话式智能体(多轮上下文/停止/对话式 UI,对齐 dsh 范式)
- ToolLoop 增 history 参数(既往轮次折叠为对话上下文,近 6 轮)
- 会话制:AgentSession/SessionStore 持久化 agent_runs/sessions/{sid}.json,
/agent/sessions CRUD + /agent 带 session_id(继承会话工作区与执行者配置,busy 并发控制)
- POST /agent/{id}/cancel:取消运行中任务
- AgentView 重构为对话式:会话列表 + 居中消息流(用户蓝气泡/助手白卡)+ 底部 composer
(工作区/执行者/命令 chips,Enter 发送,运行中红色停止钮),工具过程折叠收纳
- 工具步数统计统一至事件写入层并透出 status.tool_calls
- fix(tests): 会话存储测试隔离,防测试数据泄漏进真实 sessions 目录
- 测试 +4,全量 281 passed
|
2026-09-01 22:30:26 +08:00 |
|
tzt
|
943eecc5ef
|
feat(v3): 配色体系对齐 deepseek-harness Web(D7 视觉)
- 提取 dsh design-platform 官方色板为设计令牌:品牌蓝 #4176e6、bluish 灰阶、
语义状态色、透明描边(rgba 0.04-0.1)
- 侧栏改近白(sidebar-fill),扁平化阴影,悬停/滚动条/缓动全部对齐 dsh
- 六视图旧硬编码蓝批量令牌化,视觉单一来源
|
2026-09-01 21:48:05 +08:00 |
|
tzt
|
1ae9ffb159
|
feat(v3): Web 界面视觉升级(全局设计令牌 + 深色侧边栏壳 + 页面细节打磨)
- style.css 重写为设计系统:色板/圆角/阴影/统一滚动条/焦点环/卡片质感,main.ts 引入
- App.vue:深色渐变侧边栏替换顶部条(品牌区/图标导航/激活高亮/网关状态脚注)
- 六个视图页面背景令牌化,卡片统一阴影;index.html 标题与语言修正
- 功能零改动,纯视觉层
|
2026-09-01 19:09:29 +08:00 |
|
tzt
|
43e2bceae7
|
feat(v3): T26 两级智能体(大模型规划/审查 + 本地小模型执行,D7)
- run_dual 编排:规划者两阶段 JSON(plan/review,失败回喂重试一次再降级),
redo 时裁决意见回喂执行者,交接上限 agent.max_handoffs(默认 2)
- 交接文档 agent_runs/{id}/handoff.json(智能体版交流文本:instructions/acceptance/exchanges)
- /agent 新增 executor_pool_id;规划者==执行者条目拒绝;整体 token_cap 覆盖两级调用
- ToolLoop 增 emit_final 开关(内层循环不发终态,防前端 SSE 提前收口)
- 前端:执行者选择器 + phase/message 事件渲染(阶段徽标 + 双色消息卡)
- 测试 +3(done/redo/执行者故障),全量 277 passed
- fix(tests): test_config_get_put_reset 增加设置备份/恢复隔离,防止清掉用户真实配置
|
2026-09-01 11:45:33 +08:00 |
|
tzt
|
8e2123343c
|
fix(v3): 设置页 API Key 文案改为与实现一致(明文存 settings.json,不入库)
|
2026-09-01 10:57:38 +08:00 |
|
tzt
|
b08e0bb5d7
|
docs(v3): T25 文档收口(工作区选择 + harness 工具,274 测试全绿)
|
2026-09-01 10:16:58 +08:00 |
|
tzt
|
da5dfb0ef3
|
feat(v3): T24 智能体工作区选择 UI + harness 风格工具卡
- 工作区选择栏(当前目录徽标 + 选择目录按钮 + 允许执行命令开关)
- 目录选择器模态:盘符→逐级浏览、上级、手输路径、不存在可新建、最近工作区快选
- edit_file 渲染为红/绿 diff 卡;run_command 渲染 $ 命令卡;文件面板随所选目录切换
|
2026-09-01 10:16:58 +08:00 |
|
tzt
|
8358302002
|
feat(v3): T22-T23 harness 级工具扩展 + 工作区选择后端
- T22 工具内核:edit_file(old_string 唯一命中才替换,防误改)、search_files
(跨文件内容搜索,跳过 .git/node_modules 与二进制大文件)、run_command
(allow_shell 默认关;超时+输出截断+Windows CREATE_NO_WINDOW)
- T23 工作区选择(参考 deepseek-harness 打开文件夹体验):/agent/fs 磁盘目录浏览
(空 path 列 Windows 盘符)、/agent/workspaces 最近列表持久化、
POST /agent 接受 workspace(须存在目录),运行状态记录所用工作区
- 新增测试 12 项,全量 274 passed
|
2026-09-01 10:16:58 +08:00 |
|
tzt
|
10bd4cc71d
|
docs(v3): T21 集成验证与文档收口
- 新增《实现方案_v4_模型池与工具智能体.md》(D1-D6 决策、接口清单、T16-T21、实验设计)
- 任务登记:v3 Web 应用化 T1-T6 + 模型池/智能体 T16-T21
- 进度记录:叙事泛化决策(价位轴收编端云轴)、端到端实测、论文下一步
|
2026-09-01 08:52:07 +08:00 |
|
tzt
|
501058243b
|
feat(v3): T19-T20 模型池设置 UI + 智能体页 + 指标分账卡
- 设置页「模型池」区块:三角色指派下拉、条目表格(档位徽标/单价/启用/测试/编辑/删除)、
内联添加表单(模型列表探测 datalist,api_key 留空保留原值)
- 新增「🤖 智能体」页 /agent:任务输入 + 池模型选择、工具调用时间轴
(round/tool_call/tool_result/usage/final)、左侧工作区文件浏览与预览
- 指标页「按模型分账」卡片(v2.by_model 表格)
- 修复:SSE final 后 EventSource 自动重连回放导致的事件重复渲染(终态即关闭+回放拦截)
|
2026-09-01 08:51:52 +08:00 |
|
tzt
|
374dc765c2
|
feat(v3): T17-T18 模型池 + 工具智能体后端
- T17 模型池:PoolStore(local/budget/premium 条目 + architect/worker/agent 角色指派),
/pool CRUD+连通测试+模型探测端点;build_v2_pipeline 池指派优先(测试 override 最后);
V2Stats 新增 by_model 按 token/成本分账
- T18 智能体:OpenAI 兼容工具调用客户端(transport 可注入)+ AgentService
(事件落盘 agent_runs/{id}/events.jsonl)+ /agent 提交/status/events/SSE stream
+ 工作区浏览/读取端点(越界 400);轮数与 token 双护栏,模型经池 agent 角色或经典回退
- 新增测试 16 项,全量 262 passed(httpx 假注入,不依赖真实模型/key)
|
2026-09-01 08:51:52 +08:00 |
|
tzt
|
6247e053c1
|
feat(v3): T16 工具内核(WorkspaceTools 路径关押 + ToolLoop 通用循环,纯标准库)
- list_dir/read_file/write_file 三工具,OpenAI tools 声明与 tool_calls 解析
- 路径 join 后 resolve 必须仍位于工作区根内(防 ../ 与绝对路径逃逸)
- ToolLoop:轮数上限 + token 熔断双护栏、事件回调逐条产出、触顶强制总结
- 测试 11 项:关押/往返/截断/循环编排/熔断/错误折叠(假 chat_fn,零外部依赖)
|
2026-09-01 08:51:52 +08:00 |
|
tzt
|
3bbdcb7cc7
|
feat(v3): Web 应用化基线(异步任务/SSE/llama-server 管理/Vue SPA 四页 + 设置页整页滚动修复)
|
2026-09-01 08:31:47 +08:00 |
|
tzt
|
8d36eeec59
|
feat(v2): 模型设置(用户可调小模型/大模型/管线,/config + UI)
|
2026-08-30 21:58:41 +08:00 |
|
tzt
|
5ba3cc778b
|
feat(v2): Web 界面(对话/协作过程/人工检验/指标)+ worker 优雅降级
|
2026-08-30 21:26:16 +08:00 |
|
tzt
|
0ec7a9d034
|
feat(v2): T14 README v2 改写(架构/快速开始/指标)
|
2026-08-30 21:21:00 +08:00 |
|
tzt
|
b900082c6d
|
feat(v2): T12+T13 实验脚本 bench_tokens 与 E1 token 经济学跑数
|
2026-08-30 21:20:00 +08:00 |
|
tzt
|
70b9907a89
|
feat(v2): T11 打包分发 setup_runtime(下载/续传/解压/硬件档位)
|
2026-08-30 21:17:22 +08:00 |
|
tzt
|
ff7e1bc8de
|
feat(v2): T10 rollup + prefix cache 前缀稳定性(--cache-reuse 对齐)
|
2026-08-30 21:16:02 +08:00 |
|
tzt
|
c874382130
|
feat(v2): T7 网关扩展 + T9 token 计量与账单(/chat v2,/chat/legacy,/runs,/review,/metrics)
|
2026-08-30 21:15:19 +08:00 |
|
tzt
|
ea150129b4
|
feat(v2): T8 人工检验队列 ReviewQueue(sqlite/抽样/审核)
|
2026-08-30 21:12:52 +08:00 |
|
tzt
|
ad81e1afb7
|
feat(v2): T6 CollaborativePipeline 编排(快路径/协作循环/熔断/终审)
|
2026-08-30 21:12:03 +08:00 |
|
tzt
|
4fbbdb5290
|
feat(v2): T5 WorkerLoop + 接地验证(代码沙箱/facts对照/结构检查)
|
2026-08-30 21:08:45 +08:00 |
|
tzt
|
b3143e2914
|
feat(v2): T3 ArchitectClient(DeepSeek API,JSON 约束输出)
|
2026-08-30 21:06:34 +08:00 |
|
tzt
|
3ed37a1d30
|
feat(v2): T4 Workspace 交流文本协议(schema/校验/渲染/rollup)
|
2026-08-30 21:03:52 +08:00 |
|
tzt
|
78a410b773
|
feat(v2): T2 运维层 hw_profile + llama_server 进程管理
|
2026-08-30 21:00:52 +08:00 |
|
tzt
|
1e51167ea5
|
feat: 多专业小模型+路由模型系统 MVP(mock 全链路 + FastAPI 网关 + 论文调研)
|
2026-08-12 10:40:04 +08:00 |
|