科学工具
科学工具让世界更美好
让世界更美好

基于 Claude Agent SDK 的自主应用开发代理

Autonomous Coding Agent Demo 是一个基于Claude Agent SDK的自主编码解决方案,使用了双代理模式,一个初始化代理负责解析应用规范并自动生成详细的功能列表(默认200个测试用例)和项目骨架,另一个编码代理则在多个会话中逐步实现这些功能,通过Git提交和feature_list.json文件智能管理并持久化开发进度,支持随时暂停和恢复。Autonomous Coding Agent Demo 有强大的深度防御安全模型,采用操作系统级沙箱、严格的文件系统限制和可配置的Bash命令白名单,确保代码生成过程的安全可控。用户可以高度定制应用规范和所需功能数量,可以选择集成N8N Webhook以实时监控长运行会话的测试通过情况,实现从自然语言需求到完整应用程序的自动化构建。

快速上手准备

必备依赖安装

首先需要安装最新版本的Claude Code和Claude Agent SDK,步骤如下:

# 安装Claude Code CLI(需最新版本)
npm install -g @anthropic-ai/claude-code

# 安装Python依赖
pip install -r requirements.txt

安装完成后验证是否成功:

claude --version # 需显示最新版本
pip show claude-code-sdk # 确认SDK已安装

配置环境变量

复制示例环境文件并添加认证信息:

cp .env.example .env

编辑.env文件,至少配置一种认证方式:

# 认证(至少需配置一项)
ANTHROPIC_API_KEY=你的API密钥
# 或
CLAUDE_CODE_OAUTH_TOKEN=你的OAuth令牌

# 可选:用于进度通知的N8N Webhook
# PROGRESS_N8N_WEBHOOK_URL=https://你的n8n实例地址.com/webhook/...

获取认证凭证

• API密钥:从 https://console.anthropic.com/ 获取

• OAuth令牌:若使用Claude Code CLI认证,运行claude setup-token生成

启动演示

基础启动命令

python autonomous_agent_demo.py --project-dir ./my_project

有限迭代测试

若需快速测试,可限制迭代次数:

python autonomous_agent_demo.py --project-dir ./my_project --max-iterations 3

命令行参数说明

参数 描述 默认值
--project-dir 项目存储目录 ./autonomous_demo_project
--max-iterations 代理最大迭代次数 无限制
--model 使用的Claude模型 claude-sonnet-4-5-20250929

运行时长说明

• 首次会话(初始化):代理会生成包含200个测试用例的feature_list.json,此过程需数分钟,可能看似停滞,属于正常现象。

• 后续会话:每次编码迭代耗时5-15分钟,具体取决于功能复杂度。

• 完整应用构建:实现全部200个功能通常需要多个会话,总运行时间达数小时。

若需加快演示速度,可修改prompts/initializer_prompt.md中的功能数量(如改为20-50个)。

工作原理

双代理模式

1、初始化代理(会话1):读取app_spec.txt,创建含200个测试用例的feature_list.json,搭建项目结构并初始化git。

2、编码代理(会话2及以后):接续上一会话进度,逐个实现功能,并在feature_list.json中标记已通过的测试用例。

会话管理机制

• 每个会话使用全新的上下文窗口

• 进度通过feature_list.json和git提交持久化

• 代理会在会话间自动继续(3秒延迟)

• 按Ctrl+C可暂停,再次运行相同命令即可恢复

安全模型设计

演示采用多层防御的安全策略(详见security.pyclient.py):

• 系统级沙箱:Bash命令在隔离环境中运行

• 文件系统限制:文件操作仅允许在项目目录内进行

• Bash命令白名单:仅允许以下特定命令:

文件查看:lscatheadtailwcgrep

Node.js相关:npmnode

版本控制:git

进程管理:pslsofsleeppkill(仅允许开发进程)