docs: README 补第二批能力对齐(五级工具作用域接线/patch_file/原生视觉多模态链)

This commit is contained in:
ymq 2026-09-10 18:53:49 +08:00
parent 7dda635c9a
commit cc63f8822c

View File

@ -98,3 +98,31 @@ cd pkgs/pipeline-service && pip install .
- steer/stop 走文件传递,子 agent 每轮 tool-loop 边界 `subagents.heartbeat` 消费;
result.txt 流式落盘stop/崩溃即部分结果(绝不空手)。
## 第二批 Hermes 能力对齐:五级工具作用域 + patch_file + 原生视觉2026-09-10
### 五级作用域工具解析接线(`_resolve_tool_scopes`,解析逻辑在 core `tool_sources.py`
- `_init_components` 第 8 步:调 core 五级解析global/org/pipeline/role/project
registry 重建为解析后工具集capability 工具(技能 frontmatter 声明)合成
ToolDefinition 注册,执行路由 `capability_tools.exec_capability_tool`
- **执行层门禁**`_execute_tool` 第 0 步):`_allowed_tools` 非 None 时,作用域外
工具名(幻觉/越权)直接拒绝并回可行动提示(列出本会话可用工具)。解析失败
降级 `_allowed_tools=None` 不拦截(回退旧行为,不阻断会话)。
- 隔离走查修复capability 两层语义global 层 all/ 概念技能的 capability 声明
**不作为注入依据**(只当映射手册),否则 generic 会话拿到 ~70 个产线工具击穿
七层隔离;注入只认 org/pipeline/role/project/user 层技能的声明。
### patch_file 工具(`_t_patch_file`
old_string 唯一性校验0/多次拒绝replace_all 放行)+ 原子写 + `_resolve_ws_path`
越界防护 + UTF-8 校验(二进制拒绝)。
### 原生视觉(多模态消息链)
- `run(user_input, image_parts)`image_parts 非空时首条用户消息构造 OpenAI 多模态
content 数组text + image_url data URLllm_bridge→llm_v1 端点→inference 原样透传。
- `_call_llm` 降级兜底:含图调用失败 → `_degrade_images_if_needed` 剥离图片就地改写
消息(文本 + 系统说明「如实告知用户当前模型看不了图,建议切视觉模型或 invoke_model
i2t」重试一次——绝不假装看过图。只降级一次。
- `_estimate_tokens`/`_summarize` 兼容 list content`_content_as_text` 归一,图片按
1000 token 估)。
- `gateway.run_message(image_paths)`build_image_parts 构造 + 超限 notes 注入 content。
- 实测中性文件名红蓝两图agent 正确答「第一张红色、第二张蓝色」degrade 0 次。