一句话摘要
用 Kimi K3 搭建首个 AI Agent 循环的精确配置教程。
如何用 Kimi K3 搭建你的第一个 AI Agent 循环(内含精确配置)2026 年 7 月 20 日 · 6 分钟阅读 · 查看原文 ↗ Claude AI
Agent 循环是"向 AI 求助"和"一觉醒来工作已经完成"之间的区别。大多数人从没搭过,因为在一个前沿模型上跑上百次迭代真的要花真金白银。
本文包含:用一张图解释循环模式、两套精确配置(Claude Code 和裸 API),以及让 K3 成为循环机器的缓存数学。
你的第一个循环今晚就能跑起来,每轮大约 $0.39。
以下是完整配置 👇
在深入之前,我会在 Telegram 频道里每日分享 AI 与 vibe coding 的笔记:https://t.me/zodchixquant 🧠
循环到底是什么
剥掉炒作,一个循环就是四个反复执行的步骤:
目标 → 尝试 → 检查 →(更好?保留:重试)
↑__________________________|
目标:一个可衡量的终点线,而不是一种感觉。"所有测试通过"、"页面在 1 秒内加载"、"分数超过 90"。
尝试:模型朝目标做一单位的工作。
检查:某个东西把结果对照目标进行验证。一个测试套件、一个 linter、第二个模型。
重复:把检查结果喂回去,再来一遍,直到目标达成或预算耗尽。
就是这样。其他一切(记忆、子代理、隔夜运行)都是这个循环之上的装饰。
为什么偏偏是 K3:循环经济学
循环每一轮都会重新读取同样的上下文:代码库、目标、历史。在大多数模型上,你要为这种重复付全价。在 K3 上则不用:
每轮成本 = 新 token × $3/M + 缓存 token × $0.30/M
真实形态(800K 稳定上下文 + 每轮 50K 新 token):
K3:$0.24 + $0.15 = $0.39/轮
Fable 5:850K × $10/M = $8.50/轮
一个 50 轮的隔夜循环:在 K3 上约 $20,在 Fable 5 上约 $425。那不是折扣,那是"让它跑吧"和"像盯鹰一样盯着它"之间的区别。
唯一的规则:每一轮都把稳定上下文保持为完全相同的前缀,把任务放在末尾,这样缓存才能真正命中。
配置 A:Claude Code(5 分钟路径)
如果你就生活在 Claude Code 里,循环是内置的,K3 通过 Moonshot 的官方配置垫在下面:
export ANTHROPIC_BASE_URL=https://api.moonshot.ai/anthropic
export ANTHROPIC_AUTH_TOKEN=${YOUR_MOONSHOT_API_KEY}
export ANTHROPIC_MODEL=kimi-k3
export ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k3
export ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k3
export ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k3
export CLAUDE_CODE_SUBAGENT_MODEL=kimi-k3
export ENABLE_TOOL_SEARCH=false
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=1048576
claude
然后循环就是两条命令:
/goal 设定终点线:"tests/ 下的所有测试通过,且覆盖率保持在 80% 以上"。Claude Code 会一直朝着它努力,而不是在第一个答案处停下。
/loop 让它变成持续性的:会话按计划重新运行,或者一直运行到目标稳定成立。
通过 /status 确认你跑在 K3 上(/model 菜单不会显示它)。配置里的 1M 自动压缩窗口意味着长循环很少压缩,从而让迭代历史保持鲜活。
配置 B:裸 API 循环(完全掌控)
对于 Claude Code 之外的循环,这里有一个完整的最小循环,OpenAI 兼容:
from openai import OpenAI
client = OpenAI(
api_key=MOONSHOT_API_KEY,
base_url="https://api.moonshot.ai/v1",
)
# Stable prefix: identical every turn = cache hits at $0.30/M
STABLE = f"""You are a coding agent in a loop.
GOAL: make all tests pass in the project below.
PROJECT:
{project_dump}
RULES:
- One focused change per turn
- Explain what you changed and why in 2 lines
- If tests pass, reply exactly: GOAL_REACHED
"""
history = []
MAX_TURNS = 30
for turn in range(MAX_TURNS):
result = run_tests() # your check: pytest, npm test, etc.
if result.passed:
print(f"Done in {turn} turns")
break
response = client.chat.completions.create(
model="kimi-k3",
messages=[
{"role": "system", "content": STABLE},
*history[-6:], # last 3 exchanges, capped
{"role": "user", "content":
f"Turn {turn}. Test output:\n{result.output}\n"
f"Fix the next failure."},
],
)
change = response.choices[0].message.content
apply_change(change) # write the edit, commit to a branch
history += [
{"role": "user", "content": f"Turn {turn} test output given"},
{"role": "assistant", "content": change},
]
三个承重细节:
检查是代码,不是感觉。run_tests() 决定进展,模型永远不给自己打分。
历史是封顶的。只保留最后 3 轮对话;稳定前缀承载持久上下文,并保持缓存友好。
每次改动都进一个分支。循环可以错 10 次,只要 main 永远看不到它。
走开之前的护栏
预算停止:每轮统计 token,到达美元上限就杀掉循环。MAX_TURNS 不够,一轮膨胀的循环能耗掉十轮正常的。
进展停止:如果同一个测试连续 3 轮失败,就停下并标记。无法收敛的循环会很有礼貌地烧钱。
K3 的一个坑:目前推理只以 max 模式运行,所以每一轮都带着完整的思考输出,按 $15/M 计费。让每轮保持专注,每轮只处理一个失败,输出侧就能保持正常。
常见错误
目标含糊。"改进代码"会永远循环下去。一个循环有多好,取决于它的终点线有多可检查。
让模型自评。"在我看来没问题"正是循环产出垃圾的方式。检查器必须是外部的:测试、linter,或者一个带评分标准的第二个模型。
打破缓存。前缀里的时间戳、随机 ID 或重排过的文件,意味着每一轮都按 $3/M 而非 $0.30 计费。完全相同就是完全相同。
没有分支纪律。一个无人监督、对 main 有写权限的循环,是一部加了戏的恐怖片。
一开始就隔夜运行。你的前几个循环要在盯着的情况下跑,10 到 15 轮。先赢得信任,再枕着它睡觉。
15 分钟配置
拿一个 Moonshot API key,在 10–30% 赠送窗口内充值,活动到 8 月 11 日(3 分钟)。
选配置 A 或 B 并接好(5 分钟)。
为一个真实的小任务写一个可检查的目标:一个失败的测试、一次 lint 通过(2 分钟)。
跑 10 轮受监督的迭代,看着检查驱动工作(4 分钟)。
记下成本。然后决定下一个循环做多大(1 分钟)。
循环是编程里最古老的思想,用在了最新的工具上。K3 刚刚把它变得便宜到真正能用。
感谢阅读!
我会在 Telegram 频道里每日分享 AI 与 vibe coding 的笔记:https://t.me/zodchixquant 🧠
标签:# X # Claude # AI # Guide # Fable # Sonnet 相关文章 10 SEO backlink Claude automations for 61k AI mentions in 3 months Link building is trial and error. SEO AI Claude Automation
原文参考:https://maxed.wiki/posts/how-to-build-your-first-ai-agent-loop-with-kimi-k3-exact-setup-inside/ (Maxed.wiki,本页为站内中文整理)