20250315-OpenAI-AgentSDK实验
凑热闹。可以用GLM跑。
这里暂时用GLM底座“魔鬼修改”,代码库仅供参考(共同进步吧)
openai-agents-python-glm: 基于GLM底座运行SDK,学习实验SDK内的mAGT功能。https://gitee.com/leomk2004/openai-agents-python-glm
自言自语:
Swarm定位是框架(对比其他框架可能相当过于简单了,官方说是“实验/教学”)。
OpenAI定位的是SDK,相当与吧RAG/Search/ToolUse/ComputeUse (没有code interpretor),都封装到了SDK中(但依赖自家平台云服务提供的RAG/WebSearch/ComputerUse能力)。所以官方说是“SDK”,没说是多智能体框架。
为了:
(1)也能体验以下:模式,computer use,和未来可能升级的能力,这里需要修改底座。
(2)computer use,还是在虚拟机上跑好一点,需要有个共享代码库。
代码库修改了以下内容:
- Processors.py :需要将可观测埋点关掉(连不上openAI)
- Openai_provider.py 暂时改为用chat.complete (不要使用response 新API,估计其他厂商都还没有做适配,如果有适配成功可以再开启)
- openai_chatcompletions.py 这里改用GLM的URL和TOKEN;模型直接改为GLM*;
Basic目录验证:
运行多智能体例子agent_lifecycle_example.py:
日志:
Line 59: ### (Start Agent) 1: Agent Start Agent started Line 173: ### (Start Agent) 2: Agent Start Agent started tool random_number Line 175: ### (Start Agent) 3: Agent Start Agent ended tool random_number with result 37 Line 294: ### (Start Agent) 4: Agent Start Agent handed off to Multiply Agent Line 295: ### (Multiply Agent) 1: Agent Multiply Agent started Line 428: ### (Multiply Agent) 2: Agent Multiply Agent started tool multiply_by_two Line 430: ### (Multiply Agent) 3: Agent Multiply Agent ended tool multiply_by_two with result 74 Line 452: ### (Multiply Agent) 4: Agent Multiply Agent ended with output The result of multiplying 37 by 2 is 74. |
* 结构化输出,工具调用,agent handeroff识别正常。
FinalResult(新的API支持json schema)
SDK会根据DataClass 生成一个json schema报文。
GLM暂时还不兼容。但GLM可以这样保证结构化输出:
智谱AI开放平台
在需要格式化输出的Agent的指令中,写格式例子。参考上面的代码库吧。