Agency Swarm项目v1.x版本迁移指南:从v0.x升级到v1.x的技术解析

Agency Swarm项目v1.x版本迁移指南:从v0.x升级到v1.x的技术解析

agency-swarm An opensource agent orchestration framework built on top of the latest OpenAI Assistants API. agency-swarm 项目地址: https://gitcode.com/gh_mirrors/ag/agency-swarm

前言

Agency Swarm作为一个多智能体协作框架,在v1.x版本中进行了重大架构调整。本文将从技术角度深入解析v0.x到v1.x的迁移过程,帮助开发者理解变更背后的设计理念,并提供详细的迁移方案。

版本选择建议

当前v1.x处于beta预览阶段,建议根据项目需求选择版本:

  • 生产环境:继续使用v0.x稳定版(pip install "agency-swarm<1.0.0"
  • 测试环境:可尝鲜v1.x beta版(pip install -U "agency-swarm>=1.0.0-beta.1"

核心架构变更

v1.x版本重构了底层架构,主要变化体现在:

  1. 执行核心:从直接使用OpenAI Assistants API转向基于OpenAI Agents SDK的agents.Runner
  2. 状态管理:引入ThreadManagerConversationThread管理会话状态
  3. 智能体定义Agent类现在继承自agents.Agent,整合了工具、子智能体注册等功能
  4. 会话持久化:从仅存储Thread ID变为存储完整会话历史

必须处理的破坏性变更

以下变更会导致v0.x代码在v1.x中直接崩溃,需要优先处理:

1. 响应格式配置

# v0.x方式(已废弃)
agency.get_completion(response_format={"type": "json_schema", ...})

# v1.x正确方式
agent = Agent(output_type=YourPydanticModel, ...)

2. 响应验证机制

# v0.x方式(已移除)
agent = Agent(response_validator=my_validator, ...)

# v1.x替代方案
agent = Agent(output_guardrails=[my_guardrail], ...)

3. 异步方法变更

get_response()get_response_stream()现在必须使用await调用:

# v1.x必须使用async/await
async def main():
    result = await agency.get_response("Hello")

详细迁移步骤

智能体定义变更

模型参数配置
# v0.x方式
agent = Agent(temperature=0.7, top_p=1.0)

# v1.x推荐方式
from agency_swarm import ModelSettings

agent = Agent(
    model_settings=ModelSettings(
        temperature=0.7,
        top_p=1.0,
        model="gpt-4o"
    )
)
工具定义变化
# v0.x工具类
class MyTool(BaseTool):
    arg1: str = Field(...)
    def run(self):
        return f"Result: {self.arg1}"

# v1.x函数式工具
@function_tool
def my_tool(arg1: str) -> str:
    """工具描述"""
    return f"Result: {arg1}"

机构(Agency)初始化

# v0.x方式
agency = Agency(agency_chart=[agent1, [agent1, agent2]])

# v1.x推荐方式
agency = Agency(
    agent1,  # 入口智能体
    communication_flows=[(agent1, agent2)],
    load_threads_callback=load_threads,
    save_threads_callback=save_threads
)

持久化回调调整

虽然回调函数签名不变,但数据格式从Thread ID变为完整会话历史:

def load_threads(chat_id):
    # 现在需要返回完整会话历史而非Thread ID
    return load_conversation_history(chat_id)

def save_threads(new_threads):
    # new_threads现在包含完整会话数据
    save_conversation_history(new_threads)

新增功能特性

v1.x引入了多项改进:

  1. 结构化输出:通过Pydantic模型定义输出格式

    class TaskOutput(BaseModel):
        status: str
        result: str
    
    agent = Agent(output_type=TaskOutput)
    
  2. 守卫机制:细粒度的输入输出验证

    @output_guardrail
    async def validate_output(ctx, agent, response):
        # 自定义验证逻辑
        return GuardrailFunctionOutput(...)
    
  3. 模型设置集中管理:通过ModelSettings统一配置

迁移检查清单

  1. [ ] 更新依赖版本
  2. [ ] 替换所有response_formatoutput_type
  3. [ ] 将response_validator迁移为output_guardrails
  4. [ ] 更新Agency初始化方式
  5. [ ] 调整持久化回调处理逻辑
  6. [ ] 将同步调用改为异步模式
  7. [ ] 测试所有工具功能
  8. [ ] 验证结构化输出

结语

Agency Swarm v1.x通过架构重构带来了更强大的灵活性和控制能力。虽然迁移过程需要一定工作量,但新版本提供了更清晰的API设计和更强大的功能集。建议先在测试环境验证迁移效果,待v1.0正式发布后再考虑生产环境升级。

对于关键业务系统,可暂时保持v0.x版本,待v1.x稳定后再进行迁移。任何迁移问题可通过项目官方渠道反馈,开发团队会积极协助解决。

agency-swarm An opensource agent orchestration framework built on top of the latest OpenAI Assistants API. agency-swarm 项目地址: https://gitcode.com/gh_mirrors/ag/agency-swarm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计纬延

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值