一、Harness设计

Layer 1: System Prompt(宪法层)→ 定义价值观和行为准则
    ↓
Layer 2: Tool Schema(协议层)→ Zod验证约束参数空间
    ↓
Layer 3: Input Validation(验证层)→ 拒绝非法输入
    ↓
Layer 4: Permission System(权限层)→ 门控高风险操作
    ↓
Layer 5: Runtime Safety(执行层)→ 沙盒、并发控制、错误取消
    ↓
Layer 6: Context Management(记忆层)→ 确保长对话中约束不被遗忘
    ↓
Layer 7: System Reminders(矫正层)→ 持续注入行为提醒
    ↓
Layer 8: Budget & Circuit Breakers(兜底层)→ 绝对限制防止失控

核心组件

组件 实现方式 代码位置
工具注册表 40+工具的Registry模式 src/tools.ts + src/tools/
权限治理 四级权限模式(Auto/Plan/Ask/Deny)+ 检查点机制 集成在 Tool.tsQueryEngine.ts
上下文管理 三层压缩策略(MicroCompact/AutoCompact/FullCompact) context.ts 及相关模块
子Agent调度 AgentTool + Coordinator模块 + Task系统 coordinator/ + tasks/
记忆系统 CLAUDE.md层次结构 + AutoDream背景整合 文件系统 + 内存管理模块
Hook系统 25+生命周期事件的扩展点 分布在核心引擎中

二、架构设计:模型即Agent,工程即Harness

(1)分离"决策"与"执行"
模型(Agent):负责决定"下一步做什么"
Harness:负责可靠地执行决策、管理资源、确保安全
这种分离让Harness可以独立于模型演进,适配不同的LLM后端。
(2)极简的 Agentic Loop

def agent_loop(messages):
    while True:
        # 1. 调用 LLM 获取下一步决策
        response = client.messages.create(
            model=MODEL,
            system=SYSTEM_PROMPT,
            messages=messages,
            tools=TOOLS,
        )
        messages.append({"role": "assistant", "content": response.content})

        # 2. 检查是否需要使用工具
        if response.stop_reason != "tool_use":
            return  # 任务完成

        # 3. 执行工具并收集结果
        results = []
        for block in response.content:
            if block.type == "tool_use":
                output = TOOL_HANDLERS[block.name](**block.input)
                results.append({
                    "type": "tool_result",
                    "tool_use_id": block.id,
                    "content": output,
                })

        # 4. 将工具结果反馈,继续循环
        messages.append({"role": "user", "content": results})

整个Harness的控制流可以非常简洁,复杂性应分散到工具实现和治理层。
(3)工具系统的关键设计原则
40+工具的设计遵循 :

原则 实现方式
原子性 每个工具只做一件事(BashTool、FileReadTool分离)
自包含 每个工具包含:Zod输入schema、权限模型、执行逻辑、UI组件
可组合性 工具通过注册表(Registry)统一管理,自由组合成工作流
并发安全 读操作并发执行,写操作串行执行避免冲突

(4)多层冗余约束系统
Claude Code的Harness不依赖单一安全机制,而是多层独立有效的约束:即使System Prompt被模型"遗忘",权限系统仍会拦截危险操作
即使权限系统被绕过(如bypass模式),沙盒仍限制Bash能力
即使沙盒被禁用,USD预算和轮次限制仍是最后防线。
生产级Harness必须假设每一层都可能失效,设计多层兜底机制。
(5)上下文管理的工程实践
三层压缩策略 :
MicroCompact(局部压缩):清理旧工具输出
AutoCompact(临界压缩):对话接近上下文限制时自动触发摘要
Full Compact(核选项):完整摘要+持久化关键信息到CLAUDE.md
上下文管理不是简单的"截断",而是分层的、有策略的信息保全机制。
(6)多Agent协作的工程实现
三种Subagent执行模型 :

模型 机制 适用场景
Fork模型 字节级复制父上下文,共享API prompt缓存 并行执行相同类型任务,成本与串行相当
Teammate模型 通过JSONL文件邮箱跨终端面板通信 需要独立会话的复杂协作
Worktree模型 每个Agent在独立Git Worktree工作 避免文件冲突的隔离执行

内置 Agent 的分工体系:

Agent 类型 职责 约束
Explore Agent 代码探索专家 绝对只读,禁止任何文件修改
Plan Agent 架构规划 只读,输出 step-by-step implementation plan
Verification Agent 对抗性验证 “Try to break it”,必须跑 build/test/linter,做 adversarial probes
General Purpose Agent 通用任务 完整工具集
Claude Code Guide Agent 产品使用指导 特定领域

多Agent不是简单的"多开",而是需要解决上下文隔离、通信机制、文件系统隔离等工程问题。
(7)模块化系统提示词架构
Claude Code使用110+个字符串片段动态组装系统提示词 :
根据运行环境(Terminal/VS Code/Desktop)条件注入
根据当前模式(Normal/Plan/Auto)调整
根据功能状态(团队协作、学习模式)扩展
避免单一巨型提示词,采用模块化、条件组装的策略,控制token消耗的同时确保相关性。

三、扩展生态的 Harness 集成

(1)Skill:Workflow Package
Skill 不是文档,而是 prompt-native workflow package :
Markdown prompt bundle + frontmatter metadata
可声明 allowed-tools
可按需注入当前上下文
匹配 skill 时必须调用 Skill tool,不能只提不执行
(2)Plugin:Prompt + Metadata + Runtime Constraints
Plugin 提供 :
Markdown commands、SKILL.md 目录
Commands metadata、userConfig
Shell frontmatter、allowed-tools
Runtime 变量替换(${CLAUDE_PLUGIN_ROOT} 等)
(3)MCP:不只是工具桥
MCP 同时注入 :
新工具
如何使用这些工具的说明(通过 getMcpInstructionsSection() 拼进 system prompt)

四、对实现Harness的启发

原则 Claude Code 实现 通用 Harness 启示
制度化好行为 将"不要乱加功能、不要过度抽象、不要瞎重试"写进 prompt 和 runtime 规则 不依赖模型即兴发挥,通过系统约束确保一致性
上下文是稀缺资源 System prompt 动静边界、fork path 共享 cache、skill 按需注入 将 token 当 runtime 预算管理,而非免费空气
多层冗余约束 Hook 权限 + Permission Model + Settings 规则 + Sandbox 每层独立有效,不依赖单一安全机制
生态模型可感知 Skills 列表、Agent 列表、MCP instructions 都注入 prompt 模型必须"知道自己的扩展能力是什么"
Agent 生命周期产品化 Transcript 记录、Metadata 写入、Cleanup、Resume 机制 不是"一次函数调用",而是完整的运行时治理
专业化分工 Explore/Plan/Verification 分离 降低角色混杂,提高系统稳定性

Claude Code真正的秘诀不是一段 system prompt,而是一个把 prompt architecture、tool runtime、permission model、agent orchestration、skill packaging、plugin system、hooks governance、MCP integration、context hygiene 和 product engineering 全部统一起来的系统。

对 Harness 实现的启发:不要追求复杂的框架,而要构建可靠的约束环境——通过 Prompt 编排、工具流水线、权限治理、Hook 策略、Agent 调度、生命周期管理,将强大的 LLM 能力安全、可控、可扩展地"套上马鞍"。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐