瀏覽代碼

修正文档中的旧说法

SamLee 20 小時之前
父節點
當前提交
6a88f4178a

+ 25 - 25
cyber_agent/docs/comparison-with-claude-code.md

@@ -144,25 +144,25 @@ queryLoop 的记忆是**被动消费**的:`startRelevantMemoryPrefetch` 在每
 
 这是两个系统差距最大的维度之一。
 
-**Cyber Agent `context_hooks`**:每 10 轮调用一次,返回 markdown 字符串注入为上下文。功能是**只读注入**,无法阻断或修改任何事物
+**Cyber Agent**:当前只有 Runner 内置的周期注入,尚无通用 `context_hooks` 注册机制,也无法阻断或改写执行
 
 **CC hooks**:覆盖 25+ 事件,三种执行模式(shell / HTTP / TypeScript 回调),每个事件有专用的双向契约:
 
-| 维度 | Cyber Agent `context_hooks` | CC hooks |
+| 维度 | Cyber Agent 当前实现 | CC hooks |
 |------|---------------------------|---------|
-| **事件数量** | 1(周期注入) | 25+(全生命周期) |
+| **可注册事件** | 无(仅内置周期注入) | 25+(全生命周期) |
 | **工具生命周期** | 无 | PreToolUse / PostToolUse / PostToolUseFailure / PermissionDenied |
 | **loop 控制** | 无 | Stop hook block → `stopHookActive=true` → 强制 continue |
 | **修改输入/输出** | 无 | PreToolUse 改 toolInput;PostToolUse 改 MCP 输出 |
 | **阻断执行** | 无 | PreToolUse deny;PostToolUse preventContinuation |
-| **执行模式** | Python 函数 | shell / HTTP / TypeScript callback / postSampling |
-| **会话级注册** | 随 AgentRunner 传入 | `addFunctionHook()`,Map-based,O(1),高并发友好 |
+| **执行模式** | Runner 固定逻辑 | shell / HTTP / TypeScript callback / postSampling |
+| **会话级注册** |  | `addFunctionHook()`,Map-based,O(1),高并发友好 |
 
 三个最重要的 hook 事件在 loop 上下文里:
 
 - **PreToolUse**:在权限检查之前调用,可 `allow`/`deny`/`ask` + 修改 toolInput。允许外部系统做"无人值守的审批代理",比交互弹窗更适合自主运行场景。
 - **Stop hook**:每轮结束时调用,若返回 block,则 `state.transition = 'stop_hook_blocking'`,loop 强制再 continue 一轮。这是"外部系统驱动 Agent 继续工作"的接入点。
-- **UserPromptSubmit**:用户消息进队列时调用,可注入 `additionalContext` 或改写消息本体。比 `context_hooks` 的定时注入更精确(每次用户输入时触发,而非每 10 轮)
+- **UserPromptSubmit**:用户消息进队列时调用,可注入 `additionalContext` 或改写消息本体。比 Cyber Agent 内置的每 10 轮周期注入更精确
 
 ### 2.6 工具摘要的异步隐藏
 
@@ -301,15 +301,15 @@ Claude Code 的记忆是**静态附加的上下文**,边界由人预先划定
 
 ```
 主 Agent(Trace A)
-    ├── agent(task="研究X")           → 子 Trace B(独立持久化,可单独续跑
-    │    └── agent(task="分析子模块") → 子 Trace C(递归)
-    └── agent(agent_url="https://remote/", task="...")
-         → 远程 Trace(agent://remote/xxx,跨设备)
+    ├── agent(task_brief={...})          → 子 Trace B(独立持久化
+    │    └── agent(task_brief={...}) → 子 Trace C(Recursive 递归)
+    └── agent(agent_type="remote_research", task="...")
+         → 远程 Agent(HTTP,跨设备)
 ```
 
-- **explore 模式**:`task: List[str]` 触发 `asyncio.gather()` 并行多 Agent
-- **evaluate 工具**:专用评估 Agent,从 GoalTree 自动注入评估标准
-- **续跑子 Agent**:`agent(continue_from=sub_trace_id)` 可续跑被中断的子 Agent
+- **多任务(内部 explore 模式)**:在同一 `agent()` 中传入 `task`(Legacy)或 `task_brief`(Recursive)列表;Legacy 并行,Recursive 默认串行、显式并行时最多 2 个
+- **评估**:Legacy 保留 `evaluate`;Recursive 由框架的独立 Validator 验收 `TaskReport`
+- **续跑子 Agent**:Legacy 可续跑直接孩子;Recursive revision 2 只能在父级审核为 `REVISE_CHILD` 后通过 `continue_from` 修订原孩子
 
 ### Claude Code:Coordinator-Worker(内存中)
 
@@ -326,9 +326,9 @@ Worker 以 `<task-notification>` XML 上报状态,通过 `SendMessageTool` 持
 |------|-------------|-------------|
 | 子 Agent 持久化 | ✅ 独立 Trace | ❌ 内存中 |
 | 续跑子 Agent | ✅ `continue_from` | ✅ `SendMessageTool` |
-| 跨设备协作 | ✅ `agent_url` + 远程 Trace ID | ❌ 不支持 |
-| 并行执行 | ✅ explore 模式 | ✅ 多 Worker 并行 |
-| 评估反馈循环 | ✅ evaluate 工具 | ❌ 无原生评估工具 |
+| 跨设备协作 | ✅ `agent_type="remote_*"` HTTP 路由 | ❌ 不支持 |
+| 并行执行 | ✅ `agent()` 多任务内部模式 | ✅ 多 Worker 并行 |
+| 评估反馈循环 | ✅ Legacy `evaluate` / Recursive Validator + TaskReview | ❌ 无原生评估工具 |
 
 ---
 
@@ -362,7 +362,7 @@ ToolResult(
 
 ### Bash 安全(Claude Code 更精细)
 
-Cyber Agent 通过 `AgentPreset.denied_tools` 黑名单控制,粒度是整个工具。
+Cyber Agent 通过 `RunConfig.tools/tool_groups/exclude_tools` 控制工具范围,粒度是整个工具。
 
 Claude Code 有独立的 102KB 安全分析器(`bashSecurity.ts`):
 - 命令语义分析(参数级,不只是工具名匹配)
@@ -374,12 +374,12 @@ Claude Code 有独立的 102KB 安全分析器(`bashSecurity.ts`):
 
 ## 九、权限系统
 
-### Cyber Agent:静态预设(工具级)
+### Cyber Agent:运行配置(工具级)
 
 ```python
-AgentPreset(
-    allowed_tools=["read", "glob", "grep"],
-    denied_tools=["write", "edit", "bash"],
+RunConfig(
+    tools=["read_file", "glob_files", "grep_content"],
+    exclude_tools=["write_file", "edit_file", "bash_command"],
 )
 ```
 
@@ -426,10 +426,10 @@ AgentPreset(
 | **GoalTree** | 结构化计划,与消息关联,驱动细粒度压缩 |
 | **Knowledge + Reflect** | 跨任务知识积累,Agent 主动从经验中学习 |
 | **记忆组织轴** | 围绕执行语义积累,不依赖人为划定边界 |
-| **evaluate 工具** | 内置评估-反馈循环,Agent 可自我校正 |
+| **分模式验收** | Legacy 使用 `evaluate`;Recursive 使用独立 Validator + TaskReview 闭环 |
 | **ToolResult 双层记忆** | 精细的 context 节约机制 |
-| **跨设备 Agent 协作** | 分布式 Agent 网络,协议级支持 |
-| **Context Injection Hooks** | 灵活的外部事件注入(A2A IM、监控告警等) |
+| **远程 Agent 路由** | `remote_*` 通过 KnowHub HTTP 服务调用 |
+| **周期上下文注入** | 已注入 GoalTree、协作者和内置 IM 通知;通用 Context Hooks 尚未实现 |
 | **服务化 API** | REST + WebSocket,天然可集成、可观测 |
 
 ### 值得从 Claude Code 借鉴的设计
@@ -445,7 +445,7 @@ AgentPreset(
 | **权限规则自动学习** | "始终允许"自动写入配置,构建个性化规则库 |
 | **工具生命周期 hooks(PreToolUse / PostToolUse)** | 在工具执行前后插入外部逻辑:审批代理(PreToolUse allow/deny)、MCP 输出改写(PostToolUse updatedMCPToolOutput)、失败后通知(PostToolUseFailure)。Cyber Agent 目前对工具执行无介入点 |
 | **Stop hook(loop 控制)** | 每轮结束时调用,可返回 block 强制 loop 再 continue 一轮(`transition='stop_hook_blocking'`)。这是"外部事件驱动 Agent 继续"的最直接接入点 |
-| **UserPromptSubmit hook** | 用户消息进队列时触发,可注入 `additionalContext` 或改写消息。比 `context_hooks` 定时注入更精确,也更适合做"收到外部信号时注入上下文"的触发器 |
+| **UserPromptSubmit hook** | 用户消息进队列时触发,可注入 `additionalContext` 或改写消息。比内置周期注入更精确,也更适合做"收到外部信号时注入上下文"的触发器 |
 | **工具结果自动存档(toolResultStorage)** | 每个工具声明 `maxResultSizeChars`,超限时自动写入磁盘临时文件,API 收到 preview(前 2000 字节)+ 文件路径,模型可按需用 FileReadTool 读回完整内容。与 Cyber Agent 的 `long_term_memory`(手动摘要、原始内容丢弃)互补:这是零开发者工作量的兜底层,防止意外大输出撑爆 context,且原始内容可恢复 |
 
 ---

+ 2 - 1
cyber_agent/docs/decisions.md

@@ -1,6 +1,7 @@
 # 设计决策
 
 > 记录系统设计中的关键决策、权衡和理由。
+> 本文按时间保留历史决策,早期 API 可能已被后续决策替代;当前工具接口以 [`tools.md`](./tools.md) 和实际代码为准。
 
 ---
 
@@ -1369,4 +1370,4 @@ context = {
 
 **实现**:`cyber_agent/tools/builtin/subagent.py`(路由)、`knowhub/server.py::agent_api`(`/api/agent`)、`knowhub/agents/librarian.py` / `research.py`(去 trace_map)。文档:`cyber_agent/docs/tools.md § Agent 工具`、`knowhub/docs/remote-agents.md`、`knowhub/docs/api.md`。
 
----
+---

+ 1 - 1
cyber_agent/docs/memory.md

@@ -2,7 +2,7 @@
 
 > 状态:已实现(2026-04)。本文档同时承担**设计理由**和**使用规范**。
 > 入口、工具、API 清单见文末"十、实现与入口"。
-> 一~九节解释"为什么这么做",改动前请先读懂论证
+> 一~九节保留设计演进和理由,其中的“需要修改/新增”是实施记录,不是当前待办;当前入口以第十节和实际代码为准
 
 ---
 

+ 1 - 1
cyber_agent/docs/tools-refactor-plan.md

@@ -3,7 +3,7 @@
 > ✅ **方案一(内容工具族)** 和 **方案二(浏览器工具族)** 已于 2026-04-12 完成落地。
 > 下方保留原始方案文档供参考。沙箱工具已于此前删除。
 >
-> 当前工具体系的状态请看 [`tools.md`](./tools.md)。
+> 本文下文是历史改造方案,不作为当前 API 规范;当前工具体系请看 [`tools.md`](./tools.md)。
 
 ## 背景