Skip to main content

构建自我改进 AI 智能体:自主 Agent loop 完整指南

10 min read
构建自我改进 AI 智能体:自主 Agent loop 完整指南

你的 AI Agent 刚发了个功能,你关上笔记本。但如果它继续工作呢?不是随机实验,而是真正从刚才的工作里学习、文档化经验、攻克你下一个优先任务。本文教你搭建自我改进的 AI Agent loop,每天提取知识、系统化存储、自动应用到未来工作。已经有开发者在用这个系统,下面是怎么搭。

无状态工作流在浪费你的时间

打开 Claude Code、描述功能、Agent 写代码、找 bug、改、能用了。关掉会话。

下周类似功能、同代码库,会怎样?同样的错误、同样的问题、同样的修正。Agent 什么都没学到,因为工作流是无状态的。每次会话从零开始,上下文消失,进度重置。

复利工程:每个任务让下一个更容易

Every Inc 的 Kieran Klaassen 提出了"复利工程"概念:每个工作单元应该让下一个更容易。不只是对人,对 AI Agent 也是。

完成任务后,Agent 应该提取关键经验(发现的模式、踩过的坑、有效的方法),写进 Agent 自动读的文档文件。像维护团队 wiki 一样,只是 Agent 维护自己的知识库并自主参考。

两阶段自主 Agent Loop

阶段 1:知识提取(22:30) Agent review 最近工作,提取没在开发中记录的经验,更新文档,提交推送。

阶段 2:自主开发(23:00) Agent 拉最新代码(含更新后的知识库),读优先级 backlog,挑首条,写规范,拆任务,实现,跑测试,开 draft PR。

阶段顺序很重要:阶段 1 更新知识,阶段 2 用知识构建。早上你拥有:更新后的文档、下一个优先功能的 draft PR、详细日志。

前置条件

必需工具

  • Claude Code CLI 已安装配置
  • Git + 正确凭证
  • GitHub CLI(gh)做 PR 自动化
  • jq 解析 JSON

推荐

  • 结构化 backlog(markdown 文件)
  • CI/CD pipeline
  • Slack/企业微信 webhook 用于通知

项目准备

  • 干净的 git 仓库 + 远程
  • 仓库根 AGENTS.md
  • logs/ 目录
  • Claude API credit(自主跑会消耗 token)

阶段 1:知识提取脚本

#!/bin/bash
# scripts/daily-knowledge-extraction.sh
set -e

PROJECT_DIR=~/projects/your-project
LOG_FILE="$PROJECT_DIR/logs/knowledge-$(date +%Y%m%d).log"

cd "$PROJECT_DIR"
git checkout main
git pull origin main

claude -p "Review 过去 24 小时的 git commit。对每个 commit:
1. 识别值得文档化的模式
2. 提取踩到的边界情况
3. 记录有效的方法
4. 把新经验写入 AGENTS.md 相应章节
5. 简洁可执行

完成后用消息 'docs: update agent knowledge base [automated]' 提交。" 2>&1 | tee -a "$LOG_FILE"

初始 AGENTS.md 模板:

# Agent 知识库

## 项目概述
[Agent 会填写]

## 架构模式
[发现的成功模式和约定]

## 常见踩坑
[需要注意的边界情况]

## 测试策略
[本代码库有效的方法]

阶段 2:自主开发脚本

#!/bin/bash
# scripts/autonomous-development.sh
set -e

PROJECT_DIR=~/projects/your-project
cd "$PROJECT_DIR"

git fetch origin main && git checkout main && git pull

PRIORITY_ITEM=$(grep -m 1 "^- \[ \]" backlog/priorities.md | sed 's/^- \[ \] //')
[ -z "$PRIORITY_ITEM" ] && exit 0

BRANCH="auto/$(echo "$PRIORITY_ITEM" | tr ' ' '-' | cut -c1-50)"
git checkout -b "$BRANCH"

claude -p "读 AGENTS.md 获取项目上下文。

任务:$PRIORITY_ITEM

请:
1. 在 tasks/spec-$BRANCH.md 写简短规范
2. 按 AGENTS.md 模式实现功能
3. 写/更新测试
4. 跑测试套件
5. 修问题

自主工作但遇到这些情况停:
- 需要外部 API key
- 模糊需求需要人决定
- 3 次尝试后测试还失败" 2>&1 | tee -a logs/dev.log

if [ -n "$(git status --porcelain)" ]; then
    git push -u origin "$BRANCH"
    gh pr create --draft \
        --title "Auto: $PRIORITY_ITEM" \
        --body "自主实现:$PRIORITY_ITEM" \
        --base main
fi

调度(macOS launchd)

launchd 在 macOS 上比 cron 可靠。创建两个 .plist

时间 任务 文件
22:30 知识提取 com.yourproject.knowledge-extraction.plist
23:00 自主开发 com.yourproject.autonomous-dev.plist

加载:

launchctl load ~/Library/LaunchAgents/com.yourproject.knowledge-extraction.plist
launchctl load ~/Library/LaunchAgents/com.yourproject.autonomous-dev.plist
launchctl list | grep yourproject

国内用户可以用 Linux 服务器 + crontab 替代,配合 OpenClaw 跑国产模型,详见 OpenClaw 完全安装指南 2026

测试再自动化

别直接上过夜跑,先手动测:

./scripts/daily-knowledge-extraction.sh
tail -f logs/knowledge-*.log
git diff AGENTS.md

./scripts/autonomous-development.sh
tail -f logs/dev.log

手动跑至少一周再调度过夜。

防止 Mac 睡眠

caffeinate -i -w $$

或者系统设置 → 能源 → 开启"显示器关闭时不自动睡眠"。

真实效果

我测了几周变化:

  • 第 1 周:Agent 反复犯同样 API 错误,我每次手工修
  • 第 3 周:Agent 遇到类似 API 模式,查 AGENTS.md 看到记录的踩坑,自己正确处理
  • 第 6 周:AGENTS.md 含 40+ 模式,新功能实现快 30%

知识库变成机构记忆。周一的错误被文档化,周四的工作自动避开。

安全实践

1. 仅 draft PR:永不自动合并,人审

2. 设预算上限

ANTHROPIC_MAX_TOKENS_PER_SESSION=50000

3. 加通知

if [ $? -ne 0 ]; then
    curl -X POST -H 'Content-type: application/json' \
    --data '{"text":"Agent 任务失败,查日志"}' \
    $WEBHOOK_URL
fi

4. 熔断器:3 次失败后停

5. 版本控制全程:git 历史就是审计轨迹

6. 监控 token 用量:写 csv 日志,避免意外账单

头 7 天计划

任务
1-2 装工具、建 AGENTS.md、文档化 3-5 个模式
3-4 写知识提取脚本,手动跑
5-6 建小 backlog,手动跑开发脚本
7 配 launchd,跑一夜,早上 review

从 prompt 到复利

多数开发者把 Agent 当高级补全:你打字,它建议,你接受或拒绝。有用但不复利。

范式变化发生在 Agent 维护自己的知识库时:文档化经验、未来工作引用、持续改进对你具体代码库的理解。

每个 PR 越来越容易,1 月的模式防止 3 月的 bug,Agent 变成你项目的专家而不是通用助手。

中文开发者补充

国内跑这套有几个调整:模型用通义 Qwen3-coder-plus + 智谱 GLM 组合(参考 模型选择指南),通知 webhook 走企业微信或飞书,机器人挂阿里云 ECS 而不是本地 Mac。掘金 juejin.cn 上有不少自动化 Agent 实践分享值得参考。

相关阅读