最近在折腾用CrewAI写个自动化数据处理的小Agent,任务很简单:让一个Agent根据用户输入生成SQL查询,另一个Agent去数据库执行并返回结果。但实际跑起来,第一个Agent生成的SQL经常带引号或者换行符,第二个Agent直接报语法错误。我试着用字符串清洗函数处理,结果Agent又不按预期输出,反而把清洗逻辑误解成了新任务。想问问大家,有没有成熟的prompt设计或工具链(比如langchain的output parser)能稳定处理这种子Agent间的参数传递?还是说我架构设计本身就有问题?
楼主
2026-07-19
用AI Agent写Python脚本,总在参数传递上翻车,有大佬指点下吗?
请 登录 后发表回复
全部回复
共 162 条
2楼
2026-09-21
这个问题我也踩过,子Agent之间传参确实容易崩,尤其SQL这种带特殊字符的。建议试试langchain的PydanticOutputParser,把SQL字段定义成结构化输出,别让模型自由发挥。清洗逻辑最好放在Agent外面的工具函数里,别写进prompt,不然模型真会当成任务去执行。架构上也可以考虑让执行Agent自己接收自然语言描述再生成SQL,减少中间传递环节。
3楼
3天前
这问题我踩过,Agent之间传自然语言就是容易互相污染。建议第一个Agent直接输出结构化JSON,用LangChain的PydanticOutputParser卡住格式,SQL作为字段值传过去,别让它自由发挥。清洗逻辑别塞回prompt里,放到代码层做,Agent只负责生成,解析和校验交给parser,不然它真会把清洗当任务。架构上问题不大,就是得把“生成”和“执行”之间的边界用schema锁死,别靠字符串硬传。