2026 年 9 月 15 日,TypeSafe AI 发布了 Jev——一个不生成文本、只做类型化决策的模型。它的创始人是 ChatGPT 的联合发明人,他说"ChatGPT 时代是一个奇怪的弯路"。
2026 年 9 月 15 日,TypeSafe AI 发布了 Jev——一个不生成文本、只做类型化决策的模型。它的创始人是 ChatGPT 的联合发明人,他说"ChatGPT 时代是一个奇怪的弯路"。
div class="eb-card eb-simple" div class="eb-card-bgbox"/div div class="eb-card-body" div class="eb-titlebox" span class="eb-titicon"svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="xh-svg" viewBox="0 0 16 16"path d="M7.657 6.247c.11-.33.576-.33.686 0l.645 1.937a2.89 2.89 0 0 0 1.829 1.828l1.936.645c.33.11.33.576 0 .686l-1.937.645a2.89 2.89 0 0 0-1.828 1.829l-.645 1.936a.361.361 0 0 1-.686 0l-.645-1.937a2.89 2.89 0 0 0-1.828-1.828l-1.937-.645a.361.361 0 0 1 0-.686l1.937-.645a2.89 2.89 0 0 0 1.828-1.828l.645-1.937zM3.794 1.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387A1.734 1.734 0 0 0 4.593 5.69l-.387 1.162a.217.217 0 0 1-.412 0L3.407 5.69A1.734 1.734 0 0 0 2.31 4.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387A1.734 1.734 0 0 0 3.407 2.31l.387-1.162zM10.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732L9.1 2.137a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L10.863.1z"//svg/span span class="eb-title"智能摘要/span span class="eb-icon"svg t="1742538455943" class="xh-svg" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="71517" width="24" height="24"path d="M554.144375 443.52552083L655.7121875 53.33333333 200 559.25333333l237.6478125 55.68-101.52 390.24 455.664375-505.96875z" p-id="71518" fill="currentColor"/path/svg/span /div div class="eb-excerpt"本文全面梳理 LLM 模型路由系统的技术原理与工业实践。核心探讨五大技术路线:规则路由、分类器路由、级联推理、强化学习路由与生成式路由,每一条均有 FrugalGPT、RouteLLM 等顶会论文论证。详细对比火山引擎 Auto Mode 与 OpenRouter 两种代表性的跨模型/跨供应商路由方案,给出分层路由 + 质量-成本联合优化的最佳实践架构。/div div class="eb-desc"span— 此摘要由AI生成仅供参考。/span/div /div /div h1LLM 模型路由系统深度调研:原理、论文与工业实践/h1 h2一、概述/h2 p随着大语言模型(LLM)的数量和种类爆发式增长,如何自动选择最合适的模型来处理用户请求,已成为 AI 基础设施的核心问题。模型路由系统(Model Routing System / LLM Gateway Router)应运而生,它充当用户请求与后端模型之间的智能调度层,在保证服务质量的前提下,优化成本、延迟与可用性。/p p本报告系统梳理模型路由系统的技术原理、核心要素、学术进展与工业界最佳实践。/p h2二、核心问题定义/h2 p模型路由问题可以形式化描述为:给定用户请求 codeq/code 和候选模型集合 codeM = {m₁, m₂, ..., mₙ}/code,路由系统需要选择最优模型 codem*/code,使得综合效用函数 codeU(q, m)/code 最大化:/p pstrongm* = argmax_{m ∈ M} U(q, m)/strong/p p其中 U 综合考虑任务匹配度、延迟、成本、可用性等多个维度。/p h2三、决策要素与评估维度/h2 h3任务类型与模型能力匹配/h3 p不同模型在不同任务上表现差异显著。代码生成任务中 DeepSeek Coder、GLM-4 表现优异;长文本推理场景下 Kimi 的 128K 上下文窗口优势明显;简单对话场景则轻量模型即可胜任。路由系统需对用户请求进行任务分类(Classification)。/p h3延迟指标/h3 p包括 P50 和 P99 延迟。实时对话场景对延迟敏感(目标 < 1s),批处理场景则可容忍较高延迟。系统需维护各模型端点的实时延迟监控数据。/p h3成本优化/h3 p不同模型的 Token 单价差异可达 50 倍以上。路由系统需在质量约束下最小化成本,或在预算约束下最大化质量。/p h3可用性与负载均衡/h3 p实时追踪各模型端点的错误率、超时率、当前排队深度,自动避开不可用或过载的端点。/p h3地域亲和性/h3 p根据用户 IP 就近选择部署节点,减少网络传输延迟。/p h3速率限制管理/h3 p跟踪 API 配额消耗情况,避免触发限流导致请求失败。/p h2四、技术路线分类/h2 h34.1 基于规则的路由(Rule-based Routing)/h3 p核心思路是设计决策树或规则引擎,基于 prompt 的可观测特征(长度、语言、是否含代码/JSON/函数调用)进行分桶路由。/p ul listrong优点:/strong 可解释性强、实现简单、延迟极低、易调试/li listrong缺点:/strong 规则需要人工维护,边界情况容易遗漏,难以自适应/li listrong代表系统:/strong 火山引擎 Auto Mode 一级分桶机制、Portkey 基于权重的路由/li listrong论文支撑:/strong Chen 等人(2023)在…
h1A2A (Agent-to-Agent) 协议详解/h1 A2A 是一个开放协议,让不同框架、不同厂商、不同服务器上运行的 AI Agent 能够互相通信和协作。当前版本 v1.0.0。 h2一、原始内容概述/h2 h31.1 什么是 A2A/h3 A2A(Agent-to-Agent,代理间通信协议)是一个开放协议,由 Google 贡献给 Linux Foundation 作为开源项目,Apache 2.0 许可。当前版本为 strongv1.0.0/strong(正式发布版)。 它的核心使命是:strong让不同框架、不同厂商、不同服务器上运行的 AI Agent 能够像 Agent 一样互相通信和协作——而不是作为对方的"工具"。/strong h31.2 核心问题/h3 A2A 解决的核心问题是:strong异构 AI Agent 系统之间如何实现互操作?/strong ul liAgent 可能用不同框架构建(ADK、LangGraph、BeeAI 等)/li liAgent 可能由不同公司运营(跨企业协作)/li liAgent 运行在不同服务器上(跨信任边界)/li liAgent 不能暴露内部状态、记忆或工具/li /ul A2A 的答案:定义一套通用语言,让 Agent 发现彼此、协商交互、安全协作,同时保持各自的不透明性。 h31.3 核心设计原则/h3 ol listrong简单/strong:复用成熟标准(HTTP、JSON-RPC 2.0、SSE)/li listrong企业就绪/strong:认证、授权、审计、追踪/li listrong异步优先/strong:长耗时任务和 HITL/li listrong模态无关/strong:文本、文件、结构化数据、音视频/li listrong透明执行/strong:不共享内部状态/li /ol h31.4 三层架构/h3 strongL1 — 数据模型层/strong:Task、Message、Part、Artifact、AgentCard、Extension strongL2 — 操作层/strong:Send Message、Send Streaming Message、Get Task、List Tasks、Cancel Task、Get Agent Card strongL3 — 协议绑定层/strong:JSON-RPC over HTTP(S)、gRPC、HTTP+JSON/REST h31.5 Agent 卡片(Agent Card)/h3 Agent Card 是 JSON 格式的"名片",包含身份信息、能力、技能、端点 URL、认证要求、租户标识。 h31.6 任务生命周期/h3 SUBMITTED → WORKING → COMPLETED / FAILED / CANCELED / REJECTED h31.7 三种交互模式/h3 strong① 同步请求/响应/strong:立即返回 Task 或 Message strong② 流式交互/strong:SSE 连接,实时推送中间结果 strong③ 异步推送通知/strong:webhook URL,服务器主动 POST h31.8 官方 SDK/h3 ul liPython:codepip install a2a-sdk/code/li liJavaScript:codenpm install @a2a-js/sdk/code/li liGo:codego get github.com/a2aproject/a2a-go/code/li liJava、.NET、Rust 均有 SDK/li /ul hr / h2二、使用场景举例/h2 h3场景 1:跨 Agent 任务委派/h3 主 Agent 通过 Agent Card 发现 Travel Agent 和 Hotel Agent,分别委派机票和酒店任务,子 Agent 各自处理返回结果。 h3场景 2:人机协同审批/h3 Agent A 提交报销审批 Task(状态 WORKING),等待主管审批(HITL),完成后 Task 变 COMPLETED。 h3场景 3:流式数据分析报告/h3 分析 Agent 流式返回中间结果,最终输出完整报告 Artifact,客户端实时看到分析进度。 h3场景 4:跨企业 Agent 协作/h3 企业 A 的供应链 Agent 查询企业 B 的库存 Agent——跨信任边界的协作典范。 h3场景 5:多框架异构 Agent 协同/h3 ADK + LangGraph + BeeAI 的 Agent 通过 A2A 在同一工作流中协作。 hr / h2三、最佳实践/h2 h3Agent 卡片设计/h3 ul li精确描述能力,不夸大/li li明确认证要求/li li版本管理/li /ul h3Task 管理/h3 ul li合理使用 historyLength/li li游标分页而非 offset/li licontextId 关联对话/li /ul h3错误处理/h3 ul li区分可重试和不可重试错误/li li流式中断后 Get Task 恢复/li li考虑幂等性/li /ul h3安全/h3 ul li始终验证 Agent Card/li li能力最小化/li li数据最小化/li li全程 HTTPS/li /ul hr / h2四、避坑指南/h2 ol listrong混淆 Send/Streaming Message/strong/li listrong忽视流式中断恢复/strong/li listrong不使用 contextId/strong/li listrongPush notification URL 不可达/strong/li listrong向终态 Task 发消息/strong:返回 UnsupportedOperationError/li listrong长轮询代替流式/推送/strong/li listrong忽略 historyLength 限制/strong/li listrong信任非…
Hermes 的多 Agents 是一套边界清晰的三层架构: 第一层是执行内核:span class="wx_search_keyword_wrap"AIAgenti class="wx_search_keyword"/i/span。无论外部接入多少种形态的终端,最终负责思考和工具调度的,都是这套底层的运行核心。 第二层是临时派生:codedelegate_task/code。它像是一个同步的方法调用,专门用来处理当前回合内的短任务和并发请求,即用即毁,不保留长期记忆。 第三层是长效协作:span class="wx_search_keyword_wrap"Profilei class="wx_search_keyword"/i/span + Kanban。这套机制赋予了 Agent 持久的身份标识和跨节点的任务流转能力,用来支撑复杂的长期协同工程。 要让这套三层架构顺畅运转,必须首先理清:状态究竟存储在何处?上下文如何实现安全隔离?各个节点如何确保输出物可被验收? h2一、先看 code~/.hermes//code目录结构/h2 Hermes 的全局配置默认存放在 code~/.hermes//code 下,涵盖 codeconfig.yaml/code、code.env/code、codeauth.json/code、codeSOUL.md/code、codememories//code、codeskills//code、codecron//code、codesessions//code 和 codelogs//code。 从多 Agent 视角看,它的结构大致如下: precode/code/pre precode~/.hermes/ ├── config.yaml # 模型、终端、压缩、工具等配置 ├── .env # API keys、平台 token、secret ├── auth.json # OAuth 凭证 ├── SOUL.md # 默认 agent 身份 ├── memories/ │ ├── MEMORY.md # agent 自己的长期记忆 │ └── USER.md # 用户画像和偏好 ├── skills/ # agent 创建或安装的技能 ├── cron/ # 定时任务 ├── sessions/ # gateway session 相关文件 ├── state.db # SQLite session/message/state 数据库 ├── kanban.db # 多 Profile 协作任务板 ├── logs/ └── profiles/ └── coder/ ├── config.yaml ├── .env ├── SOUL.md ├── memories/ ├── skills/ └── state.db /code/pre precode/code/pre Profile 维护的是状态目录,而非限制性的工作目录。它为 Hermes 提供一套独立的配置、API 密钥、记忆库、技能和网关状态;但实际的工作目录由 codeterminal.cwd/code 决定,Profile 本身不干预文件系统访问权限。换言之,codecoder/code profile 拥有专属设定,但这并不意味着它只能在 code~/.hermes/profiles/coder//code 目录下活动。 Profile 定义了“这个 agent 的身份”。 h2二、AIAgent:运行机制的核心枢纽/h2 Hermes 提供多种入口:CLI、Gateway、Cron、ACP、Batch Runner、API Server 和 Python Library。 然而,真正承担执行任务重任的是 coderun_agent.py/code 中的 codeAIAgent/code。 Hermes的架构中,所有入口最终都会交由 codeAIAgent(run_agent.py)/code 处理,随后经过提示词构建、提供商解析、工具分发、会话存储和工具后端等模块。 将这一流程简化为一条链路: sectionimg class="alignnone size-full wp-image-2877" title="640" src="https://blog.75live.com/wp-content/uploads/2026/05/640.png" alt="640" width="1080" height="608" //sectionHermes 的第一个底层逻辑十分清晰:只要系统处于“思考、调用工具、返回结果”的循环中,核心运行的始终是 AIAgent。 所谓多 Agent,本质上是在不同入口、状态和上下文下,启动多个 AIAgent 实例。 h2三、Prompt:Agent 身份差异的来源/h2 既然底层都是 AIAgent,为何表现出 coder、researcher 或 personal assistant 这样的行为差异? 关键在于提示词的组装机制。 Hermes 的 system prompt 并非静态文本,而是通过多层组装构建而成。它涵盖 codeSOUL.md/code 身份描述、工具指引、Honcho 区块、系统消息、内存快照、用户画像快照、技能索引、项目背景文件、时间戳及平台提示。 具体而言: precode/code/pre precodeAgent 行为 = 基础模型能力 + SOUL.md 身份 + MEMORY / USER 长期记忆 + skills 可调用技能 + 项目上下文文件 + 当前 session 历史 + 当前任务 prompt + 可用工具集合 /code/pre precode/code/pre 这一过程中,有几个容易被忽视的细节: 第一,codeSOUL.md/code 定义身份而非规则引擎。它会塑造 agent 的语气、偏好和工作方式,但无法强制实施访问控制。 第二,长期记忆是在 session 启动瞬间注入的一份“冻结快照”。存在 code~/.hermes/memories//code 里的 codeMEMORY.md/code 和 codeUSER.md/code,只会在对话刚开始时被拼进系统提示词。这就意味着,哪怕中途触发了新记忆并写入了磁盘,当前这轮对话的“人设”也不会立刻跟着刷新。 第三,skills 采用按需加载机制。作为独立知识文档存放在 code~/.hermes/skills//code 中,采用渐进式披露策略。这有效避免了为每个子 agent 加载全量技能而引发的上下文膨胀问题。 Agent 的个性分化并非魔术,而是源于不同 Profile 下 codeSOUL.md/code、记忆、技能、工作目录及工具权限的具体组合。 准确地说,Agent 并非单纯的模型,而是“模型 + 状态 + 工具 + 记忆 + 工作边界”的复合体。 h2四、Session:记录历史,而非界定身份/h2 在 Hermes 的设计中,Session 承担着记录会话历史的职能。 具体来说,系统依靠 code~/.hermes/state.db/code 这个 SQLite 数据库来承载这些数据。里面存放了完整的聊天记录、会话元数据和模型配置,并原生支持 FTS5 全文搜索。为了兼顾性能与可查性,它还开启了 WAL 模式,甚至能直接追踪会话之间的血缘关系。 这解决了核心痛点:Agent 启动时如何获取历史上下文。 如果在命令行(CLI)里启动,它能直接顺着上次的话题往下聊;要是从外部平台接入,Gateway网关就会先通过聊天 ID 认出这是哪场对话,然后单独拉起一个…
自从2026年过年之前就在思考 如何构建自己的家庭AI实验室,我日常的学习中面临了如下几个问题: ol li当下的AI设计也有,看到太多的变化,但这些变化很多都停留在纸面上,缺少动手实操和深入了解,我认为我需要深入了解一些特有的框架,找到他们的共性,而不是人云亦云;/li li实操更容易有体感,真实的了解他们是如何运行的;/li li构建可持续的学习环境,预期可以实现开发、算力部署、训练、测试一体的环境;/li /ol 本文档记录日常搭建家庭mini版本的AI实验室的整体记录,整体预算控制在 5万左右(); h2网络建设(内网2.5Gbps,下行1000Mbs、上行50Mbps)/h2 ol li家庭网络采用电信的1000M带宽作为家庭入带宽,光猫2.5Gbps;/li li软路由采购了Glite的MT 5000 ,3网口的2.5Gbps、交换机:水星 Se106 p 2.5Gbps *4网口的POE交换机;/li li为了承担家庭的智能硬件的wifi 和日常生活的wifi 网络,采购:Beecommini 的AP*3台,2.5Gps;/li /ol 整体网络拓扑和规划如下: h2算力建设/h2 ol li一台小主机来承担 内网穿透的中转站(N100,内部安装 frpc 内网穿透服务+easy tailer)/li li其他主机默认安装 easy tailer,包括软路由,实现外网和内网环境一致,通过虚拟网卡实现 虚拟局域网;/li li外网环境,如公司环境不允许安装类似内网穿透工具,则通过公网 frps 的服务器 进行中转,直接访问家里的主机;/li li外出学习的个人PC也安装easy tailer 来实现内网互通;/li /ol
div data-zone-id="0" data-line-index="0" data-line="true" h1 class="heading-h1"Harness Engineering 详解/h1 /div div data-zone-id="0" data-line-index="1" data-line="true" h2 class="heading-h2"Harness Engineering 的定义与核心价值/h2 /div div data-zone-id="0" data-line-index="2" data-line="true"Agent 可靠性的瓶颈不在模型,而在模型周围的系统。模型是引擎,Harness 是方向盘。以 LangChain Coding Agent 为例,在 Terminal Bench 排行榜中,通过仅优化 Harness(系统提示、工具配置、中间件钩子),模型未更换的情况下,排名从 30 名开外提升至前五。Harness 源自马具(缰绳、马鞍等)的比喻:模型如马(强大但无方向),人类工程师如骑手(提供方向),Harness 则是连接两者的控制系统。其核心定义为:通过设计解决方案避免 Agent 重复犯错,公式为 Agent=Model+Harness,模型提供智能,Harness 让智能变得有用。/div div data-zone-id="0" data-line-index="3" data-line="true" h2 class="heading-h2"Harness Engineering 与 Context Engineering 的区别/h2 /div div data-zone-id="0" data-line-index="4" data-line="true"Context Engineering 关注 “给 Agent 看什么信息、何时看”,管理上下文窗口;Harness Engineering 范围更广,关注系统 “预防了什么、测量了什么、修复了什么”,包括架构约束、自验证循环、熵治理、系统可演进性等,两者互相包含。/div div data-zone-id="0" data-line-index="5" data-line="true" h2 class="heading-h2"Harness 的六个核心组件/h2 /div div data-zone-id="0" data-line-index="6" data-line="true" h3 class="heading-h3"上下文架构/h3 /div div data-zone-id="0" data-line-index="7" data-line="true"Agent 性能在上下文利用率超过 40% 后会下降,关键是提供 “地图” 而非 “百科全书”。例如 OpenAI 将 AGENTS.MD 控制在约 100 行作为目录,指向深层文档;Anthropic 采用 Skill 渐进式加载理念,避免信息过载。/div div data-zone-id="0" data-line-index="8" data-line="true" h3 class="heading-h3"架构约束/h3 /div div data-zone-id="0" data-line-index="9" data-line="true"仅靠 Prompt 约束 Agent 行为不可靠(模型可不听从),前沿团队用确定性工具(如自定义 linter、结构化测试)机械执行约束。例如 Vercel 移除 80% 冗余工具后,Agent 因解空间受限反而更快更可靠。/div div data-zone-id="0" data-line-index="10" data-line="true" h3 class="heading-h3"自验证循环/h3 /div div data-zone-id="0" data-line-index="11" data-line="true"解决 Agent 死循环(反复编辑同一文件)和跳过验证问题。通过中间件钩子:跟踪文件编辑次数(超阈值提醒重新审视)、退出前强制执行验证。“推理三明治” 策略:规划阶段最高推理强度理解问题,执行阶段降为高等保证速度,验证阶段拉回最高捕获错误,避免全程高推理强度导致超时。/div div data-zone-id="0" data-line-index="12" data-line="true" h3 class="heading-h3"上下文隔离/h3 /div div data-zone-id="0" data-line-index="13" data-line="true"多 Agent 协作时,父 Agent 仅看到给子 Agent 的指令和最终结果,中间工具调用和产物被隔离,保持各执行单元上下文干净,避免无关信息污染。/div div data-zone-id="0" data-line-index="14" data-line="true" h3 class="heading-h3"熵治理/h3 /div div data-zone-id="0" data-line-index="15" data-line="true"Agent 运行时间越长,系统混乱度越高(文档过时、架构漂移等)。OpenAI 引入后台文档梳理 Agent,定期扫描并自动修复过时文档,形成自维护闭环。/div div data-zone-id="0" data-line-index="16" data-line="true" h3 class="heading-h3"可拆卸性/h3 /div div data-zone-id="0" data-line-index="17" data-line="true"Harness 需模块化、可拆卸,以适应模型演进。如 LangChain 中间件架构,各组件独立添加 / 移除,不影响其他部分,避免未来模型进步使现有组件成为瓶颈。/div div data-zone-id="0" data-line-index="18" data-line="true" h2 class="heading-h2"Harness Engineering 的投资回报与实践原则/h2 /div div data-zone-id="0" data-line-index="19" data-line="true"Harness 投入呈复利效应:添加 linter 规则可预防所有会话中的同类错误,验证中间件提升所有任务交付质量,投入越早累积收益越大。但需避免过度工程化,原则是 “只在 Agent 确实犯过的错误上投入 Harness,不解决未出现的问题”。/div div data-zone-id="0" data-line-index="20" data-line="true" h2 class="heading-h2"总结/h2 /div div data-zone-id="0" data-line-index="21" data-line="true"Harness Engineering 核心主张:Agent 可靠性瓶颈不在模型,而在模型周围的系统。模型是引擎,Agent 是整辆车,Harness 是方向盘和刹车,没有 Harness,再强的引擎也无法到达目的地。/div
h1a href="https://www.anthropic.com/engineering/harness-design-long-running-apps"面向长期运行型应用开发的 Harness 设计 (原文译文)/a/h1 div/div div发布于 2026 年 3 月 24 日/div div/div divHarness 设计是前沿智能体编程(agentic coding)领域实现高性能的关键。本文将介绍我们如何通过这一设计,在前端开发和长期自主软件工程领域进一步提升 Claude 的能力。/div div/div divem作者:普里特维・拉贾塞卡兰(Prithvi Rajasekaran),Anthropic 实验室团队成员/em/div div/div div过去几个月里,我一直在攻克两个相互关联的难题:一是让 Claude 生成高质量前端设计,二是让它在无需人工干预的情况下构建完整应用。这项工作源于我们早期在前端设计能力和长期运行型编码智能体 Harness 上的探索 —— 当时我和同事通过提示词工程与 Harness 设计,已将 Claude 的性能提升至远超基准水平,但两者最终都遇到了瓶颈。/div div/div div为实现突破,我探索了适用于两个截然不同领域的全新 AI 工程方法:一个领域(前端设计)依赖主观审美判断,另一个(自主编程)则强调可验证的正确性与可用性。受生成对抗网络(GANs)启发,我设计了包含strong生成器智能体(generator)/strong 和strong评估器智能体(evaluator)/strong 的多智能体架构。要打造一个能可靠且有 “审美” 地评估输出结果的评估器,首先需要制定一套标准,将 “这个设计是否优秀” 这类主观判断转化为具体、可量化的评分指标。/div div/div div随后,我将这些技术应用于长期自主编程任务,并延续了早期 Harness 开发中的两个核心经验:将构建过程拆解为可处理的模块,以及通过结构化产物在不同会话间传递上下文。最终形成的三智能体架构 —— 规划器(planner)、生成器(generator)和评估器(evaluator)—— 能够在数小时的自主编码会话中,生成功能完善的全栈应用。/div div/div h2朴素实现方案的局限性/h2 div/div div我们此前已证明,Harness 设计对长期运行型智能体编程的有效性至关重要。在早期实验中,我们通过初始化智能体将产品需求分解为任务清单,再由编码智能体逐一实现功能,并通过产物传递在不同会话间保持上下文连贯性。开发者社区也逐渐形成了类似共识,例如 “拉尔夫・威格姆(Ralph Wiggum)” 方法就通过钩子函数或脚本让智能体保持持续迭代。/div div/div div但仍有一些问题长期存在。面对更复杂的任务,智能体在长时间运行后容易 “偏离轨道”。通过拆解分析,我们发现智能体执行此类任务时存在两种常见失效模式:/div div/div div其一,随着上下文窗口被占满,模型在长任务中容易失去连贯性(详见我们关于上下文工程的文章)。部分模型还会出现 “上下文焦虑” 现象 —— 当感知到接近自身上下文限制时,会过早结束工作。而 “上下文重置” 机制(完全清空上下文窗口并启动新智能体,同时通过结构化传递保留前序智能体的状态和后续步骤)能同时解决这两个问题。/div div/div div这与 “压缩(compaction)” 机制不同:压缩是原地总结对话早期内容,让同一智能体在缩短的历史记录上继续工作。虽然压缩能保持连续性,但无法给智能体提供 “干净的起点”,因此 “上下文焦虑” 可能依然存在。重置机制虽能提供干净起点,但需要传递产物包含足够状态,确保新智能体无缝接手工作。在早期测试中,我们发现 Claude Sonnet 4.5 的 “上下文焦虑” 现象尤为明显,仅靠压缩不足以保障长任务性能,因此上下文重置成为 Harness 设计的核心要素。这一方案虽解决了核心问题,但也增加了每次 Harness 运行的编排复杂度、令牌开销和延迟。/div div/div div其二,自我评估问题(这是我们此前未解决的痛点)。当要求智能体评估自己的产出时,它们往往会自信地给出正面评价 —— 即便在人类观察者看来,产出质量明显平庸。这一问题在设计等主观任务中尤为突出,这类任务不存在软件测试那样的二元验证标准。界面布局是否精致、是否平庸,本质是主观判断,而智能体在自我评分时总是倾向于给出正向反馈。/div div/div div即便在有可验证结果的任务中,智能体有时也会因判断失误影响任务进度。将执行工作的智能体与评估工作的智能体分离,被证明是解决这一问题的有效手段。这种分离本身并不能立即消除评估的宽容性 —— 评估器本质仍是大语言模型,对同类模型生成的输出天然倾向于宽容。但将独立评估器调优为 “持怀疑态度”,远比让生成器自我批判容易得多;而一旦获得外部反馈,生成器就有了明确的迭代方向。/div div/div h2前端设计:让主观质量可量化评分/h2 div/div div我首先从前端设计领域入手实验,因为自我评估问题在这里表现得最为明显。在无任何干预的情况下,Claude 通常会倾向于生成安全、可预测的布局 —— 技术上可用,但视觉上毫无亮点。/div div/div div我为前端设计构建的 Harness 源于两个核心洞察:第一,虽然美学无法完全量化(个人审美始终存在差异),但可以通过编码设计原则和偏好的评分标准来提升质量。“这个设计是否美观?” 难以给出一致答案,但 “这个设计是否符合优质设计原则?” 能为 Claude 提供明确的评分依据。第二,将前端生成与前端评分分离,可构建驱动生成器产出更优结果的反馈循环。/div div/div div基于这一思路,我制定了四项评分标准,并将其纳入生成器和评估器的提示词中:/div div/div ul listrong设计质量/strong:设计是否呈现出连贯的整体感,而非零散部分的堆砌?优秀的设计应让色彩、排版、布局、图像等细节融合统一,形成独特的氛围和辨识度。/li listrong原创性/strong:设计中是否体现出定制化决策,还是仅使用模板布局、库默认样式和 AI 生成的通用模式?人类设计师应能识别出刻意的创意选择。未修改的现成组件(或带有紫色渐变叠加白色卡片等 AI 生成痕迹的设计)将被判定为不达标。/li listrong工艺水准/strong:技术执行质量,包括排版层级、间距一致性、色彩协调性和对比度。这是对技术能力的检验,而非创意检验。大多数合理实现默认都能达标,未达标则意味着基础技术存在缺陷。/li listrong功能性/strong:与美学无关的可用性。用户能否理解界面功能、找到核心操作,并无需猜测即可完成任务?/li /ul div/div div我将设计质量和原创性置于工艺水准和功能性之上。Claude 在工艺和功能方面的表现本就出色 —— 所需的技术能力对模型而言较为自然。但在设计和原创性上,Claude 生成的输出往往平庸乏味。该标准明确 penalizes 高度通用的 “AI 模板化产物”,通过加重设计和原创性的权重,推动模型在美学上承担更多风险、进行更多创新。/div div/div div我通过少量带详细分数拆解的示例对评估器进行校准,确保其判断与我的偏好一致,并减少迭代过程中的评分偏差。/div div/div div这一循环基于 Claude Agent SDK 构建,编排过程简洁高效:生成器智能体首先根据用户提示创建 HTML/CSS/JS 前端;评估器借助 Playwright MCP(模型控制协议)直接与运行中的页面交互,随后对每项标准评分并撰写详细评论。实际运行中,评估器会自主导航页面、截图分析,在深入研究实现细节后再给出评估结果。这些反馈会作为输入传递给生成器,用于下一轮迭代。每个生成任务通常运行 5 至 15 轮迭代,每轮迭代都会根据评估器的评论,推动生成器向更具独特性的方向优化。由于评估器需要主动导航页面而非仅对静态截图评分,每个循环都需要实际耗时,完整运行时间最长可达四小时。我还要求生成器在每次评估后做出策略决策:若分数呈上升趋势,则优化当前方向;若方案无效,则彻底转向全新美学风格。/div div/div div在多轮运行中,评估器的评估质量会在迭代中逐步提升,随后趋于平稳,仍有进一步优化空间。部分生成结果会逐步细化,另一些则在迭代间出现显著的美学转向。/div div/div div评分标准的措辞对生成器的引导效果超出了我的预期。例如,“最佳设计应具备博物馆级水准” 这样的表述,会推动设计向特定视觉风格收敛,这表明与标准相关的提示词会直接影响输出的核心特征。/div div/div div虽然分数总体呈上升趋势,但并非严格线性。后期实现整体更优,但我经常发现中间某轮迭代的结果比最终版本更合预期。实现复杂度也会随轮次增加 —— 生成器为响应评估器的反馈,会尝试更具挑战性的解决方案。即便在第一轮迭代中,输出结果也明显优于无任何提示的基准版本,这表明在评估器反馈带来进一步优化前,标准本身及相关表述已引导模型摆脱了通用默认样式。/div div/div div一个典型案例是,我要求模型为荷兰艺术博物馆创建网站。第九轮迭代时,模型生成了一个简洁的深色主题虚构博物馆首页,视觉精致但符合预期。而在第十轮,模型彻底抛弃原有方案,将网站重新构想为空间化体验:通过 CSS 透视效果渲染带方格地板的 3D 房间,艺术品以自由形式悬挂在墙上,用户通过 “门口” 而非滚动或点击在展厅间导航。这种创造性突破是单次生成无法实现的。/div div/div h2扩展至全栈编程/h2 div/div div基于这些发现,我将这种受 GAN 启发的模式应用于全栈开发。生成器 - 评估器循环与软件工程生命周期天然契合 —— 代码审查和质量保障(QA)在结构上与设计评估器扮演着相同角色。/div div/div h3架构设计/h3 div/div div在早期的长期运行型 Harness 中,我们通过初始化智能体、按功能模块工作的编码智能体,以及会话间的上下文重置,实现了连贯的多会话编程。上下文重置是关键突破:该 Harness 基于 Sonnet 4.5 构建,而该模型存在前文提到的 “上下文焦虑” 问题。构建能良好支持上下文重置的 Harness,是确保模型专注任务的核心。而 Opus 4.5 本身已大幅改善了这一行为,因此我在此次 Harness 中完全移除了上下文重置机制。智能体在整个构建过程中保持连续会话,Claude Agent SDK 的自动压缩功能会处理上下文增长问题。/div div/div div本次工作在原有 Harness 基础上构建了三智能体系统,每个智能体针对我在前期运行中发现的特定缺口设计:/div div/div ul listrong规划器(Planner)/strong:早期的长期运行型 Harness 要求用户预先提供详细需求说明。为自动化这一步骤,我设计了规划器智能体 —— 它能将 1-4 句简短提示扩展为完整产品需求说明。我要求它在范围上大胆规划,重点关注产品背景和高层技术设计,而非具体技术实现。这是因为若规划器过早指定细粒度技术细节且出现错误,这些错误会在后续实现中逐级放大。更合理的做法是明确智能体的交付物,让它们在工作过程中自主规划实现路径。我还要求规划器在产品需求中融入 AI 功能(附录提供示例)。/li listrong生成器(Generator)/strong:早期 Harness 中 “一次实现一个功能” 的模式在范围管理上效果良好,我在此沿用了类似思路 —— 要求生成器按迭代周期(sprint)工作,从需求说明中逐一选取功能实现。每个迭代周期都基于 React、Vite、FastAPI 和 SQLite(后期改为 PostgreSQL)技术栈构建应用,生成器需在每个迭代周期结束后自我评估,再移交至 QA 环节。此外,它还集成了 Git 版本控制功能。/li listrong评估器(Evaluator)/strong:早期 Harness 生成的应用往往表面亮眼,但实际使用时存在大量漏洞。为解决这一问题,评估器借助 Playwright MCP 模拟用户操作 —— 点击运行中的应用,测试 UI 功能、API 端点和数据库状态。随后,它会根据发现的漏洞,以及一套基于前端实验改编的标准(涵盖产品深度、功能性、视觉设计和代码质量),对每个迭代周期进行评分。每项标准都设有硬性阈值,若任意一项未达标,迭代周期即判定失败,生成器会收到关于问题的详细反馈。/li /ul div/div div在每个迭代周期开始前,生成器和评估器会协商一份 “迭代契约”:在编写任何代码前,就该模块工作的 “完成标准” 达成一致。这一环节的必要性在于,产品需求故意设计为高层级,需要通过该步骤衔接用户故事与可测试的实现方案。生成器提出拟构建内容及验证成功的方式,评估器审核提案以确保生成器在构建正确的功能。双方会反复迭代直至达成共识。/div div/div div智能体间通过文件通信:一个智能体写入文件,另一个智能体读取后,要么在该文件中回应,要么创建新文件供前一个智能体读取。生成器根据达成一致的契约构建产品,再将工作移交至 QA 环节。这种方式既能确保工作忠实于需求说明,又不会过早过度限定实现细节。/div div/div h3Harness 运行测试/h3 div/div div我使用 Claude Opus 4.5…
div data-page-id="OOF1dvZrPoV6SixJiHycpO9pnWc" data-lark-html-role="root" data-docx-has-block-data="false" h2总结:/h2 /div div data-lark-html-role="root" div class="universal-card-markdown-heading"span class="universal-card-text"解决方案一:经典意图识别模式(适合初期)/span/div span class="universal-card-text universal-card-text--bold"六步法/spanspan class="universal-card-text":/span div class="universal-card-table universal-card-element-shell" div class="ud__table-wrapper" div class="ud__loading-nested-loading" div class="ud__loading__container" div class="ud__table ud__table-md ud__table-bordered ud__table-scrollbar-hidden" div class="ud__table-container" div class="ud__table-content" tablecolgroupcol /col /col //colgroup thead class="ud__table-thead" tr th class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-title"span class="universal-card-text universal-card-text--bold universal-card-text--line universal-card-text--line-1"步骤/span/div/th th class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-title"span class="universal-card-text universal-card-text--bold universal-card-text--line universal-card-text--line-1"内容/span/div/th th class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-title"span class="universal-card-text universal-card-text--bold universal-card-text--line universal-card-text--line-1"示例/span/div/th /tr /thead tbody class="ud__table-tbody" tr class="ud__table-row ud__table-row-level-0 universal-card-table__row" data-row-key="" td class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-item-wrapper universal-card-table__row-item-wrapper--auto" div class="universal-card-table__row-item universal-card-table__row-item--left" data-id="markdown_12" div class="universal-card-markdown universal-card-element-shell" div class="universal-card-markdown__children_wrapper"span class="universal-card-text"1️⃣ 需求梳理/span/div /div /div /div/td td class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-item-wrapper universal-card-table__row-item-wrapper--auto" div class="universal-card-table__row-item universal-card-table__row-item--left" data-id="markdown_13" div class="universal-card-markdown universal-card-element-shell" div class="universal-card-markdown__children_wrapper"span class="universal-card-text"定义核心/次要/异常意图/span/div /div /div /div/td td class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-item-wrapper universal-card-table__row-item-wrapper--auto" div class="universal-card-table__row-item universal-card-table__row-item--left" data-id="markdown_14" div class="universal-card-markdown universal-card-element-shell" div class="universal-card-markdown__children_wrapper"span class="universal-card-text"核心:下单、查物流;异常:辱骂、诱导/span/div /div /div /div/td /tr tr class="ud__table-row ud__table-row-level-0 universal-card-table__row" data-row-key="" td class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-item-wrapper universal-card-table__row-item-wrapper--auto" div class="universal-card-table__row-item universal-card-table__row-item--left" data-id="markdown_15" div class="universal-card-markdown universal-card-element-shell" div class="universal-card-markdown__children_wrapper"span class="universal-card-text"2️⃣ 话术映射/span/div /div /div /div/td td class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-item-wrapper universal-card-table__row-item-wrapper--auto" div class="universal-card-table__row-item universal-card-table__row-item--left" data-id="markdown_16" div class="universal-card-markdown universal-card-element-shell" div class="universal-card-markdown__children_wrapper"span class="universal-card-text"建立"意图 - 话术"映射库/span/div /div /div /div/td td class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-item-wrapper universal-card-table__row-item-wrapper--auto" div class="universal-card-table__row-item universal-card-table__row-item--left" data-id="markdown_17" div class="universal-card-markdown universal-card-element-shell" div class="universal-card-markdown__children_wrapper"span class="universal-card-text""查物流"="订单到哪了"="我的快递呢"/span/div /div /div /div/td /tr tr class="ud__table-row ud__table-row-level-0 universal-card-table__row" data-row-key="" td class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-item-wrapper universal-card-table__row-item-wrapper--auto" div class="universal-card-table__row-item universal-card-table__row-item--left" data-id="markdown_18" div class="universal-card-markdown universal-card-element-shell" div class="universal-card-markdown__children_wrapper"span class="universal-card-text"3️⃣ 槽位设计/span/div /div /div /div/td td class="ud__table-cell universal-card-table__td universal-card-table__td--center" div class="universal-card-table__row-item-wrapper universal-card-table__row-item-wrapper--auto" div class="universal-card-table__row-item universal-card-table__row-item--left" data-id="markdown_19" div class="universal-card-markdown universal-card-element-shell" div class="universal-card-markdown__children_wrapper"span class="universal-card-text"必填/可选参数/span/div /div /div /div/td td class="ud__table-cell universal-card-table__td universal-card-table__td--center"…
div data-page-id="TgmTf59WydulY0c6f0xcYQ7lnec" data-lark-html-role="root" data-docx-has-block-data="true" div h2多智能体场景适配和场景/h2 /div div table class="ace-table" data-ace-table-col-widths="200;200;347"colgroup col width="200" / col width="200" / col width="347" //colgroup thead tr th colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-Iha2fhCXRdu2kfccm8yc88pVnCf"多智能体运行模式/div/th th colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-JUKRfsnGddnBUZcqs64cjHGTnbg"核心特点/div/th th colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-YRBSfhvm9d9GbMceakhcPVV1n3y"适合的业务场景/div/th /tr /thead tbody tr td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-KGK1fKGYPdaYdgcUBlec1Us7nEf"顺序执行(Pipeline/Sequential)/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-BIGsfLKg1dCC3WcmxnQcHtCSnqf"流程固定、串行执行,前一步输出为后一步输入,无分支无并行/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-W1B6fehTAd5PuvcDwawcvmsSnNc"1. 内容生成(规划→写作→润色→发布);/div div class="ace-line ace-line old-record-id-W1B6fehTAd5PuvcDwawcvmsSnNc"2. 数据处理(清洗→分析→可视化);/div div class="ace-line ace-line old-record-id-W1B6fehTAd5PuvcDwawcvmsSnNc"3. 标准化客服流程;/div div class="ace-line ace-line old-record-id-W1B6fehTAd5PuvcDwawcvmsSnNc"4. 代码生成流水线(需求→编码→测试→修复)/div/td /tr tr td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-Gk0DfHOk8d47W3cGZavcboAPnac"监督者-工作者(Supervisor-Workers)-- strong用的最多/strong/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-T0T1fr2Z6dXuMscUf2scnpm6nEg"中央监督者调度、分配任务、汇总结果,工作者专注专业任务,强管控、可审计/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-MZ4ofOEW5d2orccczB1c1kqunah"1. 企业级多专家系统(法律/财务/医疗/客服);2. 研究型任务(搜索→分析→总结);/div div class="ace-line ace-line old-record-id-MZ4ofOEW5d2orccczB1c1kqunah"3. 软件开发全流程;/div div class="ace-line ace-line old-record-id-MZ4ofOEW5d2orccczB1c1kqunah"4. 多模态内容生成(文本+图像+表格)/div/td /tr tr td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-CkC4fniosdzsiic0QXJcCfWlnnc"并行执行+聚合(Parallel+Aggregate)/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-KuqbfBZuIdwLA0cNezicX7L4nqb"多Agent同时执行,任务无依赖,结果自动合并,追求效率/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-P8BPfnjYOdOTjJcRuaDcWxHcnRf"1. 多数据库/API并行查询;/div div class="ace-line ace-line old-record-id-P8BPfnjYOdOTjJcRuaDcWxHcnRf"2. 多模型回答对比;/div div class="ace-line ace-line old-record-id-P8BPfnjYOdOTjJcRuaDcWxHcnRf"3. 批量文档处理;/div div class="ace-line ace-line old-record-id-P8BPfnjYOdOTjJcRuaDcWxHcnRf"4. 舆情分析、多源情报汇总/div/td /tr tr td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-U4uCfvjn9dv4DVcCnqvcRawbnad"竞争+仲裁(Competition+Arbitration)/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-GUn8fKpLFdcbmfcidIyc672pnHd"多Agent处理同一任务,仲裁者择优/投票/融合,追求高质量、高可靠/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-RsqCfuLJRdHkLgc56EbcLcPVnEg"1. 法律文书、合同审核;/div div class="ace-line ace-line old-record-id-RsqCfuLJRdHkLgc56EbcLcPVnEg"2. 金融分析、投研报告;/div div class="ace-line ace-line old-record-id-RsqCfuLJRdHkLgc56EbcLcPVnEg"3. 高风险决策;/div div class="ace-line ace-line old-record-id-RsqCfuLJRdHkLgc56EbcLcPVnEg"4. 高质量内容生成(广告、演讲稿)/div/td /tr tr td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-NcvEfRB1edwpWzcX4jpc1V8Znnh"群体自主交接(Swarm/Handoff)/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-YZ3UfXxvodUN7pcgq5oc79UZnQe"去中心化,无中央调度,Agent自主判断、主动交接控制权,灵活度高/div/td td colspan="1" rowspan="1" div class="ace-line ace-line old-record-id-NLLVf3oEldh51hcFUijcaSTcnxg"1. 开放式对话助手;/div div class="ace-line ace-line old-record-id-NLLVf3oEldh51hcFUijcaSTcnxg"2. 复杂故障排查;/div div class="ace-line ace-line old-record-id-NLLVf3oEldh51hcFUijcaSTcnxg"3. 多角色自由协作(游戏、创意 brainstorm);4. 动态无固定流程任务/div/td /tr /tbody /table /div /div h2多智能体场景工程运行模式/h2 div data-page-id="JwrLfjOMkdaAIxcMnhJcxMUoncg" data-lark-html-role="root" data-docx-has-block-data="true" div table class="ace-table" data-ace-table-col-widths="200;200;200"colgroup col width="200" / col width="200" / col width="200" //colgroup thead tr th…
h2OpenClaw 工作原理/h2 p data-pid="RsrpdNyJ"Hesam@Hesamation 原文来自 Hesam (@Hesamation) 发布于 X 的文章,链接见文末。/p p data-pid="kOVfJU9E"我研究了 OpenClaw 的架构,以及它处理智能体执行、工具调用、浏览器操作等功能的实现逻辑,其中诸多设计思路对 AI 工程师极具借鉴价值。深入了解 Clawd 的底层运行机制,能让我们更清晰地认识这套系统的功能边界,更重要的是,明确它的优势与短板。我最初的研究初衷,只是出于个人好奇,想探究 Clawd 的记忆机制设计及其运行可靠性。/p p data-pid="ofMTSSjl"在本文中,我将为大家浅述 Clawd 的核心运行原理。/p h3Clawd 的技术本质/h3 p data-pid="SA7UTLyj"大家都知道,OpenClaw 是一款个人智能助手,可本地部署或通过大模型 API 调用,甚至在手机上就能轻松操作,但它的技术本质究竟是什么? OpenClaw 的核心是一个基于 TypeScript 开发的命令行应用(CLI),既非 Python 开发、也非基于 Next.js 的网页应用。作为一个独立运行进程,它的核心功能包括:/p ul li data-pid="TPGbVqiy"在本地设备运行并启动网关服务器,处理全渠道连接(电报、WhatsApp、斯拉克等);/li li data-pid="kXfGYdhH"调用大语言模型 API(Anthropic、OpenAI、本地模型等);/li li data-pid="yHIsdhpi"本地执行各类工具指令;/li li data-pid="kInnViHZ"实现用户对电脑的各类操作需求。/li /ul h3技术框架/h3 p data-pid="LV-q2MA3"为了更通俗地解释其架构,我们以“向 Clawd 发送消息到获取反馈”的完整流程为例说明。/p figure data-size="normal" divimg class="alignnone size-full wp-image-2838" title="v2-7d2d042ede9e467214d5e34e7781ef57_1440w" src="https://blog.75live.com/wp-content/uploads/2026/02/v2-7d2d042ede9e467214d5e34e7781ef57_1440w.jpg" alt="v2-7d2d042ede9e467214d5e34e7781ef57_1440w" width="1440" height="1104" //div/figure p data-pid="ZyBkkODx"(流程链路:用户消息 → 通道适配器 → 网关服务器 → 会话路由器 → 智能体运行器 → 模型解析器 → 系统提示词构建器 → 历史加载器 → 会话 → 任务通道队列 → 上下文窗口防护机制 → 大语言模型 API → 智能体循环 → 反馈通路 → 通道适配器 → 最终文本)/p p data-pid="7ypzAnve"在即时通讯工具中向 Clawd 发送指令后,会依次触发以下环节:/p h31.通道适配器/h3 p data-pid="1ugOXHAg"通道适配器接收用户消息并进行预处理,包括消息标准化、提取附件等。不同的即时通讯工具和输入流,都配有专属的适配器。/p h32.网关服务器/h3 p data-pid="u_oZzfIB"作为任务与会话的协调中枢,网关服务器接收用户消息并将其分发至对应会话,是 Clawd 的核心模块,可处理多个并行的请求。为实现操作序列化,Clawd 采用了基于任务通道的命令队列:每个会话对应专属的任务通道,低风险、可并行的任务(如定时任务)则可在多个通道中并行执行。 这与编写混乱的异步/等待(async/await)嵌套代码形成了鲜明对比——过度并行化会降低系统可靠性,还会引发大量难以调试的问题。/p p data-pid="QSfdxmW9"bClawd 的设计原则为:默认串行执行,显式声明并行。/b/p p data-pid="mymu59zB"从事智能体开发的开发者想必对此深有体会,这也是 Cognition 公司在博文中传递的核心观点。为单个智能体搭建简单的异步架构,最终只会产生杂乱无章的交错代码,日志无法阅读;若多个智能体共享状态,开发过程中还需时刻警惕竞态条件问题。/p p data-pid="srssjBJL"而任务通道是对队列的一层抽象,将序列化作为默认架构设计,而非后续的补充优化。开发者只需编写业务代码,队列会自动处理竞态条件问题,开发思路也将从“需要为哪些内容加锁”转变为“哪些操作可以安全地并行执行”。/p h33.智能体运行器/h3 p data-pid="4ILkFfde"这是真正承载 AI 能力的模块。该模块会确定待调用的模型、匹配对应的 API 密钥(若密钥失效,会将该配置标记为冷却状态并尝试下一个),若主模型调用失败,会自动切换至备用模型。 智能体运行器会结合可用工具、技能、记忆内容动态生成系统提示词,再加入会话历史(存储于.jsonl 文件),随后将完整提示词传入上下文窗口防护机制,校验是否有足够的上下文空间。若上下文空间即将耗尽,系统会选择压缩会话内容(对上下文进行总结)或优雅降级终止执行。/p h34.大语言模型 API 调用/h3 p data-pid="keS1hJYw"大模型调用环节会以流式方式返回结果,同时对不同服务商的 API 做了一层抽象封装;若所调用的模型支持深度思考功能,该模块还会触发模型的扩展思考逻辑。/p h35.智能体循环/h3 p data-pid="gVSGBmwm"若大模型返回工具调用指令,Clawd 会在本地执行该指令,并将执行结果补充至对话中。这一过程会反复执行,直至大模型返回最终文本结果,或达到最大循环次数(默认约 20 次)。 正是在这一环节,Clawd 实现了其核心能力——电脑操作功能。/p h36.反馈通路/h3 p data-pid="3Kg2I_Di"这一环节的逻辑较为常规:执行结果会通过原消息通道反馈给用户,同时会话数据会以基础的 jsonl 格式持久化存储,文件中每行都是一个 json 对象,记录了用户消息、工具调用指令、执行结果、模型反馈等内容,这也是 Clawd 的记忆实现方式——基于会话的记忆机制。/p p data-pid="AeCj-XHU"以上就是 Clawd 的基础架构,接下来我们聊聊其中几个关键的核心模块。/p h3Clawd 的记忆机制/h3 p data-pid="N3JLNb_l"没有完善的记忆系统,AI 助手的能力便会大打折扣。Clawd 通过两套系统实现记忆功能:/p p data-pid="GSChDdmL"1、前文提到的、以 jsonl 格式存储的会话记录; 2、存储为 Markdown 格式的记忆文件,文件位于 MEMORY.md 或 memory/文件夹中。/p p data-pid="fDCnTXTH"在检索环节,Clawd 采用了向量检索与关键词匹配相结合的混合检索方式,兼具两种方式的优势。例如检索“认证漏洞(authentication bug)”时,系统既能找到提及“认证问题(auth issues)”的文档(语义匹配),也能精准定位包含该精确短语的内容(关键词匹配)。/p p data-pid="DQpVPQym"其中,向量检索基于 SQLite 实现,关键词检索则借助 SQLite 的扩展模块 FTS5 完成,嵌入向量生成服务商支持自定义配置 该系统还搭载了智能同步功能,当文件监视器检测到文件变化时,会自动触发同步。这些 Markdown 记忆文件由智能体通过常规的“写入”文件工具生成,无专属的记忆写入 API,智能体只需向 memory/*.md 路径写入内容即可。/p p data-pid="gCCXFyBw"当新的对话开始时,系统会提取上一轮的对话内容,并将其总结为 Markdown 格式的文件。/p p data-pid="xzuQx9mZ"Clawd 的记忆系统设计出乎意料地简洁,与我们在[项目名称]中实现的工作流记忆机制高度相似:无需合并记忆文件,也无需按每月/每周的周期压缩记忆内容。这种简洁性是优势还是缺陷,因人而异,但我始终推崇可解释的简洁设计,而非混乱复杂的架构。/p p data-pid="nkQfuh0m"Clawd 的记忆会永久保存,且新老记忆的权重基本一致,不存在记忆衰减曲线。/p h3Clawd 的核心能力:电脑操作实现/h3 p data-pid="cy5kC-xW"这是 Clawd 的核心壁垒之一:可接管本地电脑并实现各类操作。其实现逻辑与大家的直观认知基本一致。/p p data-pid="okIhSNin"Clawd 会向智能体开放较高权限的电脑操作能力,相关风险由用户自行承担。它通过执行工具(exec tool)在设备上运行 Shell 命令,支持三种运行环境:/p ul li data-pid="GJbQcSyK"沙箱环境(默认):命令在 Docker 容器中运行;/li li data-pid="EQ7DiURR"本地宿主机;/li li data-pid="BzHjRXmT"远程设备。/li /ul p data-pid="qTJIR8ES"除此之外,Clawd 还配备了各类工具:/p p data-pid="K86Ovu75"文件系统工具(支持读取、写入、编辑); 基于 Playwright 实现的浏览器工具,可生成语义快照; 进程管理工具,用于执行后台长期运行的命令、终止进程等。/p h3安全机制(或近乎缺失?)/h3 p data-pid="2BbOWcd4"与 Claude Code 类似,Clawd 为用户设置了命令白名单,用户可对各类命令进行权限审批,支持三种操作:单次允许、始终允许、拒绝,并会向用户弹出审批提示。/p p data-pid="2DcPDISs"代码块示例:命令审批配置文件/p div class="highlight" precode class="language-text"{ "agents": { "main": { "allowlist": [ {"pattern": "/usr/bin/npm", "lastUsedAt": 1706644800}, {"pattern":…