Skip to content
产品

构建能写代码的工作流:编程 Agent 步骤介绍

JieGou 工作流现在可以包含自主编程 agent,在沙盒环境中读取、写入、编辑文件和运行 shell 命令。以下是它如何工作以及为什么重要。

JT
JieGou Team
··3 分钟阅读

JieGou has evolved.

Since this post was published, JieGou has pivoted from an AI automation platform to an AI-powered operations company delivering managed marketing and operations services. Learn about our managed services →

大多数 AI 自动化平台止步于文本。您可以生成报告、起草电子邮件或总结文档。但如果您的工作流需要编写代码、运行测试、更新配置文件或生成迁移脚本呢?

今天我们推出编程 Agent——一种新的工作流步骤类型,赋予您的自动化与代码库自主交互的能力。

什么是编程 Agent?

编程 Agent 是一种可以添加到任何 JieGou 工作流的新步骤类型。您给它一个任务描述,可选地指向一个 Git 仓库。然后 agent:

  1. 克隆仓库(或在临时目录中工作)
  2. 探索代码库 —— 读取文件、使用 glob 和 grep 搜索
  3. 规划方法 —— 基于它发现的内容
  4. 实施更改 —— 写入新文件、编辑现有文件
  5. 验证工作 —— 运行测试、检查错误
  6. 报告结果 —— 附带摘要和修改文件列表

所有这些都是自主进行的,逐轮执行,直到任务完成或达到配置的轮次限制。

六个内置工具

Agent 可以访问六个工具,每个工具为特定操作设计:

工具 功能
read 读取文件内容,可选行范围
write 创建或覆盖文件
edit 精确字符串替换,带模糊 Unicode 匹配
bash 执行带超时强制的 shell 命令
glob 按模式查找文件
grep 使用正则表达式搜索文件内容

您可以按步骤启用或禁用单个工具。例如,“只读分析”步骤可能只启用 readglobgrep

默认沙盒化

当您给 LLM 访问文件系统和 shell 的权限时,安全是不可商量的。生产环境中的每个编程 Agent 步骤都在具有严格约束的 Docker 容器中运行:

  • 无网络访问 —— 容器无法进行出站连接
  • 内存限制 —— 512 MB 时硬 OOM 终止
  • CPU 限制 —— 限制为核心的 25%
  • PID 限制 —— 防止 fork 炸弹(最多 50 个进程)
  • 只读根文件系统 —— 只有工作目录可写
  • 路径限制 —— 所有文件操作都经过验证以保持在工作目录内,符号链接遍历被阻止
  • 超时强制 —— bash 命令在配置的超时后被硬终止(默认:2 分钟)

在开发模式下,agent 使用本地文件系统操作以加快迭代。可插拔的 FileOperations 接口意味着相同的工具定义在两种环境中都可以工作。

长会话的迭代压缩

复杂的编程任务可能需要很多轮——20、30 甚至 50 次工具调用。这是大量的上下文。编程 Agent 使用与 JieGou 对话式 AI 相同的迭代压缩系统来处理长会话:

  • 当累积的消息接近模型的上下文窗口时,较旧的轮次被压缩成结构化摘要
  • 摘要保留目标、进展、关键决策和文件引用
  • 后续压缩更新现有摘要而不是从头重新生成

这意味着 agent 永远不会忘记它做了什么,即使在运行数十轮的会话中。

实时事件流

Agent 采取的每个操作都会发出结构化事件:

  • turn_start / turn_end —— 跟踪轮次计数和令牌使用
  • tool_call / tool_result —— 查看正在使用的工具及其输出
  • assistant_message —— agent 的推理和解释
  • compaction —— 上下文被压缩时
  • agent_end —— 最终摘要,包含总轮次、令牌和修改的文件

这些事件驱动工作流运行 UI 中的实时进度可视化,并记录到审计追踪中以用于合规。

用例

以下是团队已经在使用编程 Agent 的一些方式:

  • 自动测试生成 —— 指向一个模块并要求它编写单元测试
  • 文档更新 —— 从代码变更生成 API 文档、README 或变更日志
  • 迁移脚本 —— 根据模式变更编写数据库迁移文件
  • 配置生成 —— 从模板生成 Terraform、Kubernetes YAML 或 CI/CD 配置
  • 代码审查辅助 —— 分析差异并生成审查意见
  • 依赖更新 —— 更新包版本并修复破坏性更改

如何融入工作流

编程 Agent 是一个常规的工作流步骤。它可以:

  • 接收输入 —— 通过输入映射从之前的步骤(例如,来自 webhook 触发器的 PR 差异)
  • 输出结果 —— 下游步骤消费(agent 的响应、修改文件列表、令牌使用)
  • 在 DAG 模式下运行 —— 与其他步骤并行,带依赖声明
  • 使用任何 LLM 供应商 —— 选择最适合编程任务的模型(Claude Opus 用于复杂重构,Haiku 用于简单编辑)

计划门控和成本估算

编程 Agent 在 Pro 计划及以上可用。成本估算考虑配置的 maxTurns 乘以每轮平均令牌数,所以您在开始工作流运行之前获得准确的估算。

企业计划获得专用容器池以提高并发和隔离。

开始使用

  1. 创建或编辑工作流
  2. 添加新步骤并选择编程 Agent 作为类型
  3. 编写您的任务描述(要具体——包含文件路径、预期行为、测试命令)
  4. 可选设置仓库 URL 和分支
  5. 配置工具访问、最大轮次和模型选择
  6. 运行工作流

编程 Agent 将软件工程能力带入您的团队已经运行内容生成、数据处理和运营工作流的同一平台。无需单独的工具、无需上下文切换——只是管道中的又一步。

现在在 Pro 和 Team 计划上可用。开始使用

coding-agentworkflowsautomationdevopssandboxingdocker
分享这篇文章

喜欢这篇文章吗?

在您的信箱中获取工作流程技巧、产品更新和自动化指南。

No spam. Unsubscribe anytime.