strands-labs/ai-functions

Python functions powered by AI agents - with runtime post-conditions for reliable agentic workflows.

解决的问题

Strands AI Functions 提供了一种将 AI 代理视为标准 Python 函数的方法。它通过引入后置条件(post-conditions),解决了"提示即祈祷"(prompt-and-pray)式开发的问题,强制代理在输出满足特定要求前不断自我修正。同时,它还弥合了 LLM 文本输出与现实世界数据之间的鸿沟,允许代理生成并执行 Python 代码,以返回 Pandas DataFrames 等原生对象。

工作原理

该库使用 @ai_function 装饰器将 Python 函数转换为代理任务。文档字符串充当提示模板,返回类型注解定义了预期的输出格式。

关键架构组件包括:

  • 后置条件:验证函数,当代理输出未通过检查时,会自动触发重新提示。
  • AI 线程:带有状态的句柄,可在多次调用之间保持对话历史。
  • 协调器与工作者:一种系统,允许多个线程相互发现并发送消息,实现多代理协作。
  • 分布式执行:基于 WebSocket 的协议,允许协调器和工作者在不同进程或机器上运行。
  • 内存优化:一种自然语言的"反向传播"系统,利用对结果的反馈来更新存储在内存后端的提示、事实或代码,以提升未来运行效果。

适用人群

需要保证输出结构、支持状态化交互,并具备在分布式系统中编排代理团队能力的 Python 开发者,用于构建复杂的 AI 工作流。

主要亮点

  • 自我修正循环:基于自定义 Python 或 AI 驱动的后置条件实现自动重试。
  • 原生 Python 集成:通过本地代码执行,支持返回复杂对象(如 DataFrames)。
  • 多代理编排:内置 list_threadssend_message 工具,支持代理间自主通信。
  • 运行时互操作性:提供对 Claude Code、Kiro、Codex 等外部运行时的封装,将其视为标准线程。
  • 分布式运行时:提供 CLI 和 WebSocket 服务器,将协调器转变为全系统可用的代理运行时。
  • 自然语言优化:基于性能反馈的反馈循环,持续更新提示和逻辑。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目