agent-sop
将复杂 AI 任务写成 SOP 操作规程,让 Agent 像训练有素的工程师一样可靠执行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
将复杂 AI 任务写成 SOP 操作规程,让 Agent 像训练有素的工程师一样可靠执行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你是一名 AI 开发者,今天需要让一个大模型帮你完成一个复杂的代码重构任务——不仅要把一个 Python 项目从 Flask 迁移到 FastAPI,还要同步更新测试、写好文档、把变更整理成提交记录。这不是一个简单的"帮我写代码"就能搞定的事情,它需要 AI agent 按照特定的顺序、遵守特定的规则、调用不同的工具才能完成。
Strands Agent SOPs 正是来解决这个问题的。它是 AWS 开源的 AI Agent 工作流框架,核心思想是将复杂的、多步骤的任务流程写成标准化的"操作规程"(SOP),AI agent 读取这些 SOP 后,能够像训练有素的工程师一样,一步步执行复杂任务,始终保持一致性和可预测性。
这个项目获得了 AWS 官方博客的背书,目前在 GitHub 上已积累超过 1000 颗星,是 AI Agent 工作流领域值得关注的技术方案。
Strands Agent SOPs 是 Strands 工具生态的核心组件之一。Strands 是 AWS 推出的 AI 编程工具品牌,定位类似于微软的 Copilot,但更侧重于让 AI 能够执行完整的工作流程而非仅仅生成代码片段。
传统的 AI 编程助手(如 GitHub Copilot、Cursor 内置模型)在处理复杂、多步骤任务时,往往表现出"虎头蛇尾"的特点:能生成代码,但难以保持任务的一致性——今天生成的文件结构和明天生成的可能不一致;或者无法在多个步骤之间保持上下文,导致执行到一半迷失方向。
AWS 团队认为,要让 AI agent 可靠地完成复杂任务,不能只靠"prompt engineering",需要一种更加结构化的方式来约束 AI 的行为。SOP(Standard Operating Procedures,标准操作规程)这个概念正是来自人类工程实践——航空、医疗、金融等行业用 SOP 来确保复杂流程的一致执行。Strands 将这一思想引入 AI agent 领域。
项目的技术负责人曾在 Anthropic 和 AWS 担任重要角色,项目于 2024 年底开源,迅速获得了 AI 工程社区的关注。
Agent SOP 本质上是一种 Markdown 格式的工作流定义文件(.sop.md),它用自然语言描述了一个完整任务的执行步骤、输入参数和约束条件。与普通 prompt 不同,SOP 有严格的格式规范和语义约束。
一个完整的 SOP 包含以下组成部分:
1. Overview(概述):说明这个 SOP 的目标和适用场景,让 AI agent 知道自己正在处理什么类型的任务。
2. Parameters(参数):定义可配置的输入参数,包括参数名、类型(required/optional)、默认值以及参数获取方式。这使得同一个 SOP 可以在不同上下文中复用。例如,code-assist SOP 有一个 mode 参数,可以是 interactive(人机协作)或 fsc(全自助编码)。
3. Steps(步骤):每个步骤有清晰的名称、描述和约束(Constraints)。约束使用 RFC 2119 标准关键词:
4. Examples 和 Troubleshooting:提供真实输入输出示例,以及常见问题的解决方案。这使得 AI agent 在遇到问题时知道如何自救,而不需要频繁向人类求助。
这种设计的关键洞察是:与其让 AI"自由发挥",不如给它一本操作手册。手册里写清楚了每一步做什么、什么能做、什么不能做,AI 的行为就会变得可预测和可靠。
项目内置了五个经过精心设计的 SOP,覆盖了从代码理解、任务规划、代码实现到评测的完整流程:
① codebase-summary(代码库分析)
这个 SOP 引导 AI agent 对陌生代码库进行系统性分析,并生成高质量文档。它采用"探索-理解-归档"三阶段工作流:先通过文件遍历和关键文件阅读建立对代码库的初步认识,再识别核心模块、依赖关系和设计模式,最后将分析结果写入 .agents/summary/ 目录。
生成的文档包括面向人类的 README.md、CONTRIBUTING.md,以及专门面向 AI agent 的 AGENTS.md(这是一个越来越流行的规范,帮助团队成员和新加入的 AI 更好地理解项目上下文)。
② pdd(Prompt-Driven Development,提示驱动开发)
这是整个 SOP 生态中最有雄心的一个。它将一个粗略的想法,通过多轮迭代打磨成详细的设计文档和实施计划。PDD 的核心思想是:好的设计来自反复推敲,而不是一次成型。
工作流包含 Rough Idea -> Idea Honing -> Research -> Design -> Implementation Plan 五个阶段,每个阶段都有明确的产出物和检查点。AI agent 会在每个阶段询问人类的反馈,根据反馈调整方向——这实际上是一种"有引导的生成"模式,既利用了 AI 的创造力和速度,又保留了人类的最终决策权。
③ code-task-generator(任务拆分器)
将自然语言需求或 PDD 的实施计划,拆解成结构化的代码任务文件。它会自动识别输入类型(简单的句子描述、详细的需求文档,还是 PDD 实施计划),并生成符合 Amazon 代码任务格式规范的 .code-task.md 文件。
这些任务文件是标准化的,包含任务描述、验收标准和实现提示,每个任务都可以独立执行,便于团队分配和进度跟踪。
④ code-assist(TDD 代码实现)
这是面向实际编码的核心 SOP,采用了经典的 TDD(测试驱动开发)流程:Explore(探索)-> Plan(规划)-> Code(编码)-> Commit(提交)。AI agent 在这个 SOP 下会像一个认真的工程师:先理解现有代码风格,再制定实现计划,与人类确认后才动手写代码。
特别值得注意的是,code-assist 在"规划"和"编码"之间有一个明确的"确认"环节,AI 会将实现计划呈现给人类,等待反馈后才进入编码阶段。这种"人机协作"的设计避免了 AI 盲目执行导致的大量返工。
⑤ eval(评测工作流)
专门用于评测 AI agent 质量的 SOP,配合 Strands Evals SDK 使用。它指导用户规划评测方案、生成测试数据、执行评测并分析结果。这填补了开源 Agent 评测工具链的空白——大多数团队不知道如何系统性地评估自己的 AI agent 做得好不好,eval SOP 提供了方法论和工具支撑。
从代码结构来看,项目是一个标准的 Python 包,核心代码位于 python/strands_agents_sops/ 目录,包含以下关键模块:
mcp.py:实现 MCP(Model Context Protocol)服务器,将 SOP 封装为 MCP 工具。AI agent 可以通过 MCP 协议调用 SOP,实现了与模型无关的集成能力。skills.py:将 SOP 转换为 Anthropic Skills 格式,使得 SOP 可以直接用在 Claude 系列的 AI 助手中。rules.py:SOP 格式验证规则,确保每个 SOP 文件符合规范。utils.py:共享的工具函数,供其他模块调用。cursor.py:实验性支持,生成 Cursor IDE 的命令文件。项目依赖极为精简:仅依赖 mcp>=1.20.0,支持 Python 3.10 及以上版本。这种极简依赖策略使得它可以方便地集成到任何现有的 AI 应用中,不会引入复杂的依赖冲突。
构建工具使用 hatch(现代化的 Python 打包工具),测试框架使用 pytest,代码质量使用 ruff 进行 lint 和 format。测试覆盖率要求不低于 80%,体现了项目对质量的重视。
在发布格式上,项目支持三种分发形式:
strands-agents-sops mcp 命令启动 MCP 服务器,其他 MCP 客户端(如 Claude Desktop)可以直接调用 SOPstrands-agents-sops skills 生成 Skills JSON,导入到 Claudefrom strands_agents_sops import code_assist 使用这种"一份 SOP,多种分发"的设计非常聪明——开发者写一次,可以在不同的 AI 平台和工具中使用。
安装极为简单,一行 pip 命令即可:
pip install strands-agents-sops
安装后可以通过命令行调用不同的命令:
# 启动 MCP 服务器
strands-agents-sops mcp
# 生成 Anthropic Skills
strands-agents-sops skills --output-dir ./skills
# 生成 Cursor 命令
strands-agents-sops commands --type cursor
在 Python 中使用的示例也很直观:
from strands import Agent
from strands_tools import editor, shell
from strands_agents_sops import code_assist
agent = Agent(
system_prompt=code_assist,
tools=[editor, shell]
)
上手门槛对于有经验的 Python 开发者来说非常低。但需要注意,项目主要面向有明确工作流程需求的团队——如果你只是需要一个 AI 帮你写代码,原生的 Claude/Copilot 就足够了;SOP 的价值在于当你的任务复杂到需要"按步骤执行"、"遵守特定规则"时才会充分体现。
没有任何项目是完美的,Strands Agent SOPs 也有其局限性:
1. SOP 的维护成本 好的 SOP 需要精心编写和维护。随着项目规模扩大,SOP 本身可能变得过时或不准确。如何让 SOP 与实际工作流程保持同步,是一个需要持续投入的工程问题。
2. 学习曲线
虽然 SOP 的理念直观,但编写高质量的 SOP 本身需要一定经验。RFC 2119 约束、参数定义、步骤拆分,这些都需要一定的训练才能掌握。项目提供了 rules/agent-sop-format.md 和 rules/agent-sop-author/ 指南,但学习成本仍然存在。
3. 模型依赖性 SOP 的执行质量高度依赖于底层 AI 模型的能力。如果模型对 RFC 2119 约束关键词的理解不够准确,SOP 的执行效果会打折扣。目前项目主要针对支持工具调用的模型(如 Claude、GPT-4 等)进行了优化。
4. 无容器化支持 项目没有提供 Dockerfile 或 docker-compose,对于需要在隔离环境中运行的团队来说,需要自己包装。这在企业级部署场景中是一个遗憾。
5. Cursor 集成是实验性的 cursor.py 模块在代码中存在,但功能相对初级,实际使用中可能遇到稳定性问题。
Strands Agent SOPs 的出现,代表了 AI Agent 领域的一个重要趋势:从"一次对话完成一个任务"到"遵循工作流完成复杂任务"的演进。
当前大多数 AI 编程工具本质上还是"超级 autocomplete"——给一个 prompt,生成一段代码或一段解释。但当任务变得复杂时,这种模式遇到了瓶颈:上下文窗口有限、任务步骤之间的状态难以维护、生成的代码风格不一致……
SOP 范式提供了一种结构化的解决思路:预先定义好工作流程,让 AI 在每个步骤中遵循明确的约束,同时通过参数化设计保持 SOP 的复用性。这种思路与 LangChain 的 Agent 架构、AutoGPT 的任务分解有相似之处,但 Strands 更加轻量、更加注重人类在环(Human-in-the-loop)。
从更宏观的视角看,AWS 通过 Strands 生态正在构建一套完整的 AI 编程工具链:基础模型(Amazon Bedrock)-> 编程工具(Strands Agent SOPs)-> 评测工具(Evals SDK)-> Agent 构建器(Agent Builder)。这个生态的成熟度正在快速提升,Strands Agent SOPs 作为工作流定义层的价值也将随之增长。
如果你正在构建 AI Agent 应用,或者希望让现有的 AI 编程工具有更好的任务执行一致性,Strands Agent SOPs 值得关注和研究。它不是银弹,但它代表了一种经过深思熟虑的工程方向。