微信扫码
添加专属顾问
我要投稿
从被AI坑到用科学方法驯服AI,一个项目经理的真实成长故事。核心内容: 1. 盲目依赖AI写周报导致的关键失误 2. 系统记录发现的三大AI失效模式 3. 采用Karpathy方法实现90%准确率的实践路径
编者按:这是一篇写给所有用 AI 工具但总觉得"差点意思"的朋友。不是技术教程,是一个踩过坑的人的真实经历。
我是John Wong,在一家互联网公司做项目管理,手底下管着五六个项目,每周五下午 4 点要交周报。
三个月前,我在 Claude 上搭了一个"周报生成器" skill。想法很简单:把本周的项目进展、风险、下周计划丢进去,让它帮我写成规范的周报格式。
第一次用的时候,效果惊艳。结构清晰、语言专业,我 5 分钟就搞定了周报,提前下班。
但问题是从第二周开始慢慢浮现的。
第二周,它把两个项目的进度搞混了。
第三周,它漏掉了一个关键风险点。
第四周,它生成的"下周计划"完全是模板套话,没有任何实质内容。
但我每次都没当回事——手动改改就发了。毕竟"大部分时候还行"。
直到那个周五。
那天我按惯例生成周报,检查了一遍,看起来没问题,就发出去了。结果周一早上,老板把我叫到办公室:
“你周报里写的’项目 A 已完成验收’,客户那边明明还在提需求变更,你知不知道?”
我懵了。回头看 skill 生成的内容,确实写了"已完成验收"。但实际情况是,项目 A 只是"初步评审通过",还有一轮客户确认没做。
skill 把"评审通过"理解成了"验收完成"。
我站在老板办公室门口,脑子嗡嗡的。不是因为被骂,是因为我突然意识到一个问题:
我根本不知道这个 skill 什么时候靠谱、什么时候在胡说。
那件事之后,我开始有意识地记录 skill 的输出质量。
记录了两周,结果让我后背发凉:
也就是说,我每发两次周报,就有一次是有问题的。
但我之前完全没意识到。为什么?
我后来想明白了,skill 失效有三种方式,而我都经历过:
prompt 里没明确禁止的东西,模型会慢慢漂向"安全区"。输出越来越像模板,每次都"过得去",但每次都差一点。等你发现,根本不知道是从第几轮开始出问题的。
你只记住那些"还不错"的输出——打开、用掉、关掉。那些悄悄失效的,格式跑了、关键要素漏了,你永远不知道它们有多频繁。因为你根本不会去翻历史记录。
偶尔发现问题,手动改一改那次输出,告诉自己"修了"。但你改的是那一次,不是 skill 本身。下次还是会在同一个地方出错。
我以前三种都干过。
就在我为这事头疼的时候,我看到了 Andrej Karpathy(OpenAI 联合创始人、特斯拉前 AI 负责人)发布的一套叫 autoresearch 的方法。
核心思路简单到有点离谱:
不让 AI 帮你写代码,而是让 AI 在循环里自动改进代码。
具体怎么做?
Karpathy 最初是用在机器学习代码上的。但我看完就想:这方法能不能用来改进我的周报 skill?
答案是:能,而且效果惊人。
我把 Karpathy 的思路移植到了 Claude skill 的优化上,跑了一个月,周报 skill 的通过率从 50% 涨到了 90%。
全程零手动。agent 自己在那反复测试、收紧 prompt。
想象你教一个实习生写周报。你不会说"写得好一点",而是会给出具体标准:
autoresearch 需要你做的,就是把这类标准写成 3-6 个"是/否"问题。
每个问题检查输出的一个具体方面。通过或失败,就这么简单。
┌─────────────────────────────────────────────────────────────┐
│ 第 1 步:agent 对 skill prompt 做一个小改动 │
│ (比如:加一条"必须核对输入数据"的规则) │
├─────────────────────────────────────────────────────────────┤
│ 第 2 步:用改动后的 skill 跑 10 个测试用例 │
├─────────────────────────────────────────────────────────────┤
│ 第 3 步:用 checklist 给每个输出打分 │
│ (4 个检查项全过 = 100 分,3 个过 = 75 分...) │
├─────────────────────────────────────────────────────────────┤
│ 第 4 步:算平均分 │
│ - 比上一轮高 → 保留改动 │
│ - 比上一轮低 → 撤销改动 │
├─────────────────────────────────────────────────────────────┤
│ 第 5 步:重复,直到连续 3 轮分数超过 90% 或你喊停 │
└─────────────────────────────────────────────────────────────┘
你唯一要做的,就是定义那 3-6 个 checklist 问题。
剩下的,agent 全自动。
我跑完 autoresearch 后,agent 实际对我的 skill prompt 做了这些改动:
问题:skill 经常把"评审通过"写成"验收完成",把"进行中"写成"已完成"。
加的规则:
【强制】输出中的项目状态必须与输入信息中的状态描述完全一致。
禁止将"评审通过"改写为"验收完成"。
禁止将"进行中"改写为"已完成"。
如果不确定状态,必须标注"待确认",不得猜测。
加的规则:
【强制】生成周报前,必须逐项核对输入信息:
1. 输入中提到的每个项目名称,输出中是否都有对应?
2. 输入中的数字(进度百分比、完成数量等),输出中是否准确引用?
3. 输入中的风险描述,输出中是否完整保留,没有遗漏?
核对完成后,在输出末尾添加"[已核对]"标记。
agent 发现,skill 对"好的周报长什么样"理解模糊。于是它在 prompt 里加了一个我提供的优秀周报案例,作为参考标准。
agent 试过限制每段不超过 50 字,结果导致信息过度压缩,关键内容被删减。测试分数下降,于是撤销了这个改动。
Ole Lehmann(@itsolelehmann)已经把这套方法做成了可以直接在 Claude Code 里运行的 skill。
安装步骤:
# 创建 skills 目录(如果还没有)
mkdir -p ~/.claude/skills
# 克隆 autoresearch skill
cd ~/.claude/skills
git clone https://github.com/olelehmann100kMRR/autoresearch-skill.git
cd autoresearch-skill
npm install
# 设置你的 Anthropic API Key
export ANTHROPIC_API_KEY="your-api-key-here"
# 或者写入 ~/.bashrc 或 ~/.zshrc,持久化配置
echo'export ANTHROPIC_API_KEY="your-api-key-here"' >> ~/.zshrc
source ~/.zshrc
# 运行测试
npm test
# 对你的 skill 运行 autoresearch
claude skill autoresearch-skill --target ./path/to/your/skill
# 或者交互式运行
claude skill autoresearch-skill
# 然后按提示输入要优化的 skill 路径
如果你想用 Karpathy 原版的 autoresearch(更适合代码优化),步骤如下:
git clone https://github.com/karpathy/autoresearch.git
cd autoresearch
pip install -r requirements.txt
依赖包括:
# 设置环境变量
export ANTHROPIC_API_KEY="your-api-key-here"
export OPENAI_API_KEY="your-openai-key-here"# 可选
创建一个 task.py 文件,定义你要优化的内容。例如:
# task.py
# 定义你的 skill 和测试用例
SKILL_PROMPT = """
你是一位专业的项目管理周报撰写助手。
请根据用户提供的项目信息,生成规范的周报。
要求:
1. 每个项目的状态必须准确
2. 必须包含具体数字和进度
3. 风险描述要具体,不能是套话
4. 下周计划要可执行
"""
TEST_CASES = [
{
"input": "项目A:进度80%,本周完成接口联调,风险:第三方API响应慢",
"expected_checks": ["状态准确", "有具体数字", "风险具体"]
},
# ... 更多测试用例
]
defevaluate_output(output, test_case):
"""评估输出质量,返回分数 0-100"""
score = 0
checks = [
"状态描述准确"in output,
"80%"in output, # 检查是否保留具体数字
"API响应慢"in output, # 检查风险是否具体
]
returnsum(checks) / len(checks) * 100
python autoresearch.py --task task.py --iterations 50
参数说明:
--iterations:迭代次数,默认 100--model:使用的模型,默认 claude-3-5-sonnet-20241022--temperature:采样温度,默认 0.7如果你想完全理解原理,可以自己实现一个简化版:
# simple_autoresearch.py
import anthropic
import random
client = anthropic.Anthropic()
defrun_skill(prompt, input_data):
"""运行你的 skill"""
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=2000,
system=prompt,
messages=[{"role": "user", "content": input_data}]
)
return response.content[0].text
defevaluate(output, checklist):
"""用 checklist 评估输出"""
score = 0
for item in checklist:
# 这里简化处理,实际可以用 Claude 判断
if item["check"](output):
score += 1
return score / len(checklist) * 100
defmutate_prompt(prompt):
"""对 prompt 做一个小改动"""
mutations = [
lambda p: p + "\n【重要】必须核对所有数字的准确性。",
lambda p: p + "\n【禁止】使用'推进''优化'等模糊词汇。",
# ... 更多变异策略
]
return random.choice(mutations)(prompt)
defautoresearch(initial_prompt, test_cases, checklist, iterations=50):
"""主循环"""
best_prompt = initial_prompt
best_score = 0
for i inrange(iterations):
# 变异
new_prompt = mutate_prompt(best_prompt)
# 测试
scores = []
for test in test_cases:
output = run_skill(new_prompt, test["input"])
score = evaluate(output, checklist)
scores.append(score)
avg_score = sum(scores) / len(scores)
# 选择
if avg_score > best_score:
best_prompt = new_prompt
best_score = avg_score
print(f"✓ 迭代 {i+1}: 分数提升 {best_score:.1f}%")
else:
print(f"✗ 迭代 {i+1}: 分数 {avg_score:.1f}%,撤销改动")
return best_prompt, best_score
# 使用示例
if __name__ == "__main__":
initial_prompt = "你是一位周报撰写助手。"
test_cases = [
{"input": "项目X进度50%", "expected": "包含50%"},
]
checklist = [
{"name": "包含具体数字", "check": lambda o: "%"in o},
{"name": "状态准确", "check": lambda o: "进度"in o},
]
best_prompt, score = autoresearch(initial_prompt, test_cases, checklist)
print(f"\n最终分数: {score}%")
print(f"优化后的 prompt:\n{best_prompt}")
说实话,跑完那次 autoresearch,改变最大的不是分数。
是感觉。
以前每次用 skill,心里多少有点虚:希望这次没问题。
现在不一样了——我知道它在什么情况下能工作,在什么情况下会出错,出错了怎么找到问题。
从靠运气,变成靠系统。这才是最值钱的东西。
autoresearch 不只适用于 Claude skill。
网站速度:有人跑了 67 轮,把加载时间从 1100ms 优化到了 67ms。
冷邮件开发信:让 agent 跑 50 个变体,找出打开率最高的版本。
Newsletter 开篇:让 agent 在 autopilot 上帮你打磨文字。
任何你反复使用的 prompt。
能打分,就能 autoresearch。
如果你也在用 AI 工具,但总觉得"差点意思",我强烈建议你试试 autoresearch。
不需要你是技术专家,只需要你能回答一个问题:什么叫"好"?
把答案写成 3-6 个 checklist,剩下的交给 agent。
几周后,你可能会惊讶地发现:原来那个"还行"的 skill,可以变得这么可靠。
参考资源:
关于作者:
鲲鹏 Talk,互联网从业者,现居北京。相信好的工具应该像好同事一样可靠——不是每次都要你检查一遍,而是你知道它会在该在的时候出现。
本文首发于公众号「鲲鹏 Talk」,转载请注明出处。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-03-23
审核员:这届开发者开挂了?这款神器助你实现“提审即过”。
2026-03-23
Top50 Claude Skills 终极清单
2026-03-23
训练OpenClaw技能的三种方式
2026-03-22
Claude 官方 Skill-Creator 深度分析
2026-03-22
读完Claude工程师600万浏览的复盘后,我觉得Skills的未来在于动态编排。
2026-03-22
Google 官方总结的 5 种 Agent Skill 设计模式
2026-03-21
火爆全网 9 天拿下 33.3K Stars:YC CEO 开源 15 个顶级 Skills,让你轻松打造顶级的软件工厂!
2026-03-21
好东西都是总结出来的,创造 Skill 的 Skill,元 Skill 方法论,全文2w字
2026-03-10
2026-03-04
2026-03-04
2026-03-03
2026-03-05
2026-03-05
2026-03-03
2026-03-05
2026-03-02
2026-03-11