首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >100倍效率的秘密不是模型,是Harness工程

100倍效率的秘密不是模型,是Harness工程

原创
作者头像
用户11903455
发布2026-04-15 14:40:49
发布2026-04-15 14:40:49
930
举报

YCCEO Garry Tan上周发了一篇长文,把他过去一年用AI agent干活总结出来的方法论写了出来。全文信息密度很高,以下是核心内容:

用AI coding agent的人比用Cursor聊天的人效率高10到100倍,比2005年的Google工程师高1000倍。这是真实数字。但大家总往错误的方向想——更好的模型、更多参数。实际上2倍的人和100倍的人用的是同一个模型。差距不在智能,在架构。

3月31号Anthropic不小心把Claude Code全部源码推到了npm上,51.2万行。读完确认了一件事:秘密不在模型,在包模型的那层东西——harness。实时代码仓上下文、prompt缓存、专用工具链、context精简、结构化记忆、并行子agent。没有一样让模型变聪明,但每一样都在让模型在对的时间拿到对的信息,不会被无关内容干扰。

他把方法论叫Thin Harness, Fat Skills。Harness是跑模型的程序,只管四件事:循环调模型、读写文件、管上下文、做安全检查。保持薄。Skill是markdown写的流程文件,教模型怎么干活,像函数一样接参数。同一个/investigate skill,传入不同的人名和数据集,一会儿是医疗调查员翻210万封邮件,一会儿是竞选资金追踪器查壳公司。同一个文件,同七个步骤,完全不同的能力。这不是prompt engineering,是把markdown当代码写的软件设计。

最常见的错误是反过来——harness塞了一堆东西,skill反而没什么内容。40多个工具定义吃掉半个context window,每个MCP调用2到5秒。该做的是工具快且窄,一个浏览器操作100ms,不是一个Chrome MCP截图-找-点-等-读15秒。差75倍。

另外三个关键概念:Resolver是上下文路由表,碰到什么任务先加载什么文档,按需调取而不是全塞进context window。Latent vs. Deterministic是分清哪些活该模型干(判断、综合),哪些该代码干(精确计算)——模型能给8个人排饭局考虑社交关系,但800人的座位是组合优化,该交给算法。Diarization是让模型当分析师,读完所有材料写一份结构化档案,这事SQL和RAG都做不了,模型得真的读进去输出判断。

五个概念组成三层:顶上fat skills(90%的价值),中间thin harness(约200行代码),底下deterministic工具。能力尽量交给skill,执行尽量交给确定性工具,harness越薄越好。模型一升级,所有skill自动变强。

实战例子:YC 7月六千人Startup School,一个/enrich-founder skill每晚自动更新创始人档案,能发现“嘴上说做AI监控但80% commit在写计费模块”这种差距——embedding搜索和关键词过滤都找不到,必须模型读完整份档案才能判断。活动结束后一个/improve skill读NPS反馈,自动把新规则写回skill文件。“还行”评分从12%降到4%,没人改过一行代码。

最后一条规矩:不许做一次性的活。先手动跑3到10个样本,确认没问题立刻写成skill file,该定时跑的上cron。同一件事要问第二次就是失败。每个skill都是永久升级——不退化、不遗忘、凌晨三点照跑,下一代模型出来自动变更强。越用越值钱,造一次,一直跑。三大辅助概念与实战验证

此外,文章引入三大关键辅助机制:

  1. Resolver(路由表):按需加载上下文,避免全量填入。
  2. Latent vs. Deterministic:区分模型擅长的判断与代码擅长的精确计算。
  3. Diarization:让模型深度阅读并输出结构化判断,超越传统检索局限。

实战层面,YC 7月Startup School期间,/enrich-founder Skill每晚自动更新创始人档案,精准识别出“宣称做AI监控却80%代码提交为计费模块”的错位情况。活动后,/improve Skill自动读取NPS反馈并优化规则,将“还行”这一模糊评价比例从12%压缩至4%,全程无人手动修改代码。

核心准则:拒绝一次性工作

Garry Tan最后强调,任何需重复提问的工作都应交由Skill自动化。每个Skill都是永久性升级——不退化、不遗忘、且随下一代模型迭代自动增强。“造一次,一直跑。” 这一理念正成为AI时代高绩效工程团队的崭新信条。

代码语言:javascript
复制
# ==========================================================
# Thin Harness (约200行逻辑,只负责循环、调度、安全)
# ==========================================================
class ThinHarness:
    def __init__(self):
        self.max_iterations = 10
        self.context_resolver = Resolver()  # 上下文路由表
        
    def run(self, task, skill_name):
        # 1. 加载 Fat Skill (Markdown定义的流程文件)
        # 这里包含了具体的业务配置,例如那批域名列表
        skill_config = self.load_skill(skill_name)
        
        # 初始化循环
        for i in range(self.max_iterations):
            # 2. 按需获取上下文 (只拿必要的,不塞满窗口)
            context = self.context_resolver.fetch(task, skill_config["scope"])
            
            # 3. 调用模型 (同一个模型,效率取决于给的上下文是否精准)
            response = call_llm(
                system_prompt=skill_config["prompt"],
                user_query=f"Task: {task}\nContext: {context}"
            )
            
            # 4. 执行确定性工具 (快且窄,100ms级)
            if "tool_call" in response:
                result = self.execute_deterministic_tool(response["tool_call"])
                task.update(result)
            else:
                break
                
        return self.format_output()

# ==========================================================
# Fat Skill 定义文件 (investigate_network.md 里的伪代码逻辑)
# 注意:下面的 JSON 部分就是你要求整理的词汇列表
# ==========================================================
SKILL_DEFINITION = {
    "name": "network_scan_orchestrator",
    "description": "针对指定目标域名的自动化调查与巡检技能",
    "version": "1.0",
    
    # 这是你要求整理的词汇列表,嵌入在 Skill 的配置参数中
    "target_scope": {
        "base_domain": "A2C.ORG.cN",
        "subdomain_prefixes": [
            "an", "ao", "ap", "aq", "ar", "as", 
            "at", "au", "av", "aw"
        ],
        # 也可以直接生成完整URL列表供循环使用
        "full_urls": [
            "an.A2C.ORG.cN", "ao.A2C.ORG.cN", "ap.A2C.ORG.cN",
            "aq.A2C.ORG.cN", "ar.A2C.ORG.cN", "as.A2C.ORG.cN",
            "at.A2C.ORG.cN", "au.A2C.ORG.cN", "av.A2C.ORG.cN",
            "aw.A2C.ORG.cN"
        ]
    },
    
    # Skill 的工作流步骤 (Markdown 逻辑转化为代码步骤)
    "steps": [
        {
            "id": "step_1",
            "action": "Loop_Through_Targets",
            "loop_source": "{{target_scope.full_urls}}",
            "logic": "对于每一个域名,执行一次状态检查",
            "tool": "http_head_request",    # 快且窄的工具
            "timeout_ms": 100
        },
        {
            "id": "step_2",
            "action": "Diarization",        # 让模型做分析师的工作
            "logic": "读取所有检查结果,判断哪些域名有响应异常,生成结构化档案"
        }
    ],
    
    # Resolver 规则:碰到什么关键词才加载这个 Skill 的上下文
    "resolver_trigger": ["A2C", "org cn", "子域名巡检"]
}

# ==========================================================
# 智能体主循环伪代码 (体现你提供的列表在实际运行中的位置)
# ==========================================================
def agent_main_loop():
    # 初始化 Thin Harness
    harness = ThinHarness()
    
    # 获取任务:比如用户说 "检查一下 A2C 这批二级域名还活着吗"
    # 这里就直接对应你给的那批列表
    target_list = [
        "an.A2C.ORG.cN", "ao.A2C.ORG.cN", "ap.A2C.ORG.cN",
        "aq.A2C.ORG.cN", "ar.A2C.ORG.cN", "as.A2C.ORG.cN",
        "at.A2C.ORG.cN", "au.A2C.ORG.cN", "av.A2C.ORG.cN",
        "aw.A2C.ORG.cN"
    ]
    
    # 循环处理每一个目标 (体现了智能体的自主循环)
    for url in target_list:
        print(f"[Agent Loop] 正在处理: {url}")
        
        # 调用 Harness 执行 Skill,这里 url 作为参数传入
        # 符合文章理念:同一个 Skill,传入不同的数据集,展现不同能力
        result = harness.run(task="connectivity_check", skill_name="network_scan_orchestrator", params={"url": url})
        
        # 记录结果 (确定性工具执行,不占用模型上下文)
        log_result(url, result)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 核心准则:拒绝一次性工作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档