🤖 什么是 Agentic 编程?

Agentic 编程是 AI 从「补全代码」进化到「自主完成开发任务」的新范式。OpenClaw 通过 ACP(Agent Coding Protocol) 协议,让 AI Agent 能够:需求分析 → 代码生成 → 测试执行 → 部署发布,全程自主完成。

💡 核心优势:传统 AI 辅助编程需要你一行行确认,Agentic 模式下一个指令完成整个功能模块的开发。

🚀 完整工作流

Step 1: 需求分析

Agent 自动拆解需求,生成任务计划和验收标准。

# 向 Agent 描述需求
"帮我开发一个 RESTful API,实现用户注册、登录、JWT 认证,
使用 FastAPI + PostgreSQL,包含单元测试"

Step 2: 代码生成

Agent 调用 write 工具生成代码文件,遵循项目规范。

# Agent 自动执行
write(path="/project/api/auth.py", content="...")
write(path="/project/tests/test_auth.py", content="...")
write(path="/project/requirements.txt", content="...")

Step 3: 测试执行

Agent 运行测试,根据失败结果自动修复代码。

# Agent 自动执行测试
exec(command="cd /project && pytest tests/ -v")
# 如果失败,Agent 会分析错误并修复代码,重新测试

Step 4: 部署发布

Agent 生成 Dockerfile、CI/CD 配置,准备上线。

# Agent 生成部署文件
write(path="/project/Dockerfile", content="...")
write(path="/project/.github/workflows/deploy.yml", content="...")

🔧 使用 ACP 协议

OpenClaw 的 ACP 协议是专为编程 Agent 设计的通信规范,支持 Claude Code、Cursor Agent、GitHub Copilot 等多种后端。

配置 ACP 运行时

# gateway.yaml
runtime:
  acp:
    defaultAgent: "claude-code"
    allowedAgents:
      - "claude-code"
      - "cursor-agent"
      - "codex"
    timeoutSeconds: 600
    sandbox: "require"  # 强制沙箱执行

启动 ACP 编程任务

# 通过 sessions_spawn 启动编程 Agent
sessions_spawn(
  runtime="acp",
  agentId="claude-code",
  task="开发一个 Markdown 转 HTML 的 Python 库,包含 CLI 入口和单元测试",
  mode="run"
)

💡 最佳实践

  1. 任务粒度 - 单个 Agent 任务不超过 500 行代码,过大会导致上下文溢出
  2. 沙箱隔离 - 始终在 sandbox 中运行不受信任的代码生成任务
  3. 人工审核 - 设置 human_approval: true,关键操作需人工确认
  4. 版本控制 - Agent 生成的代码自动提交 git,保留完整历史
  5. 测试驱动 - 让 Agent 先写测试再写实现(TDD 模式)

📝 实战案例

案例:用 Agent 开发一个 OpenClaw Skill

# 向 OpenClaw 下达任务
"用 ACP 模式开发一个 OpenClaw Skill:
- 名称:stock-price-skill
- 功能:查询股票价格,支持 A 股和美股
- 数据源:Yahoo Finance API
- 包含:SKILL.md、skill.py、单元测试
- 部署路径:~/.openclaw/skills/stock-price/"

# Agent 执行流程:
# 1. 分析需求,确定依赖(yfinance 库)
# 2. 编写 SKILL.md(技能描述)
# 3. 编写 skill.py(核心逻辑)
# 4. 编写测试用例
# 5. 本地测试验证
# 6. 部署到 skills 目录
# 7. 返回完成报告

⚠️ 注意事项

安全提醒:
  • ACP Agent 具有文件系统访问权限,务必使用 sandbox 模式
  • 生成的代码需人工 Review,特别是涉及数据库操作的部分
  • API Key、密码等敏感信息不要写入生成的代码中
  • 长时间运行的 Agent 任务建议设置 timeout,避免资源耗尽

🔗 相关教程