
安全设计的核心矛盾:自主性 vs 安全性——三模式如何解开这个矛盾
为什么二进制安全模型对 agent 无效?三模式(YOLO/Auto/Ask)不只是在"全自动"和"全手动"之间加了一档——它是承认用户在不同场景下的信任级别不同。文件沙箱为什么用允许列表?命令过滤为什么用模式匹配?审计 …

为什么二进制安全模型对 agent 无效?三模式(YOLO/Auto/Ask)不只是在"全自动"和"全手动"之间加了一档——它是承认用户在不同场景下的信任级别不同。文件沙箱为什么用允许列表?命令过滤为什么用模式匹配?审计 …

工具不是你调用的——是 LLM 调用的。你设计的不是 Rust API,是 LLM 的"用户界面"。这篇文章把 trait 设计、参数类型、错误消息、注册表选型全部归约到一个根本问题——LLM 拿到工具描述后,能不能做出 …

Skills 为什么用 Markdown?Subagent 为什么用独立上下文?MCP 为什么选 stdio transport?Memory 为什么用 SQLite?每个扩展的设计都在回答:这个能力值不值得它带来的复杂 …

为什么 TUI 必须和 Agent 是两个进程?Unix socket vs TCP vs stdio 不只是通信方式的选择——是"谁拥有 agent 的状态"的根本问题。JSON-RPC 2.0 的四条规则如何成为 …

search_replace 为什么坚持 old_string 必须唯一?grep 的输出为什么用 Unix 格式?git diff 为什么不是自动触发?每个决策背后都是同一个根本问题:在确定性代码与概率性 LLM 之间 …

Part 3 把 Part 1 的 match 分发替换成 Rust trait 体系:Skill、Registry、DynSkill、schemars 自动生成 JSON Schema、并行调用、错误分类、重试 …

Part 4 引入状态机解决多步任务:Node trait、Graph 运行器、SQLite 检查点、Interrupt 中断与恢复、PermissionMode 权限门、NodeHook 横切逻辑。

Part 5 讨论多 Agent 协作:什么时候该加 Agent、什么时候不该加。Agent trait、Crew 并行/串行调度、Router 路由、debate 辩论协议,以及与 Part 3 Skill 注册表和 …

承接 Part 1 的工具调用循环,Part 2 深入讲解 Agent 的系统提示词架构:Identity、Instructions、Output、Examples、Context 四层结构,以及 Anthropic …

深入理解 AI Agent 的核心机制:工具调用循环。通过一个约 200 行的 Rust 实现,拆解模型如何通过工具使用获得行动能力,以及 Claude Code、GitHub Copilot 等产品的底层架构为何都是同 …