crew AI笔记[10] - training特性-优化必备
其实有点没搞明白,参考crewai的最佳实践经验,一个好的agent设计,80%是task的设计,20%才是agent,那么为啥train的结果只能应用于agent?是不是因为恰恰是train的自动化机制使得agent优化非常简单,所以80%的task设计都体现在人工反复雕琢上?2、生成两个pkl文件【默认trained_agents_data.pkl、training_data.pkl】本质上就
目标
利用”train命令+反馈描述“使得agent的输出一步步逼近我们的预期目标
命令
语法:crewai train -n <n_iterations> -f <filename.pkl>
实战: # 迭代x次
crewai train -n x
结果
1、每一次迭代都需要人工输入一次反馈信息
2、生成两个pkl文件【默认trained_agents_data.pkl、training_data.pkl】
重点关注trained_agents_data.pkl文件
training的最佳实践
agent系统开发完毕,先train了再说
1、运用crewai train -n 5
先进行多轮人工迭代,直到自己满意为止
如何判断?观察trained_agents_data.pkl
文件的quality值,达到9分以上或者自我感觉良好为止。
2、保存当前的最佳配置
调用training_store.py
脚本,把最佳配置保存起来,以备日后使用
# training_store.py
import pickle
# 加载训练结果
with open('trained_agents_data.pkl', 'rb') as f:
training_results = pickle.load(f)
print(training_results)
# 提取关键信息
agent_name = list(training_results.keys())[0] # 获取Agent名称
agent_data = training_results[agent_name]
# 保存为可重用的优化配置
optimized_config = {
'role': '技术开发项目 关键数据提取专家', # 原来的agent描述
'goal': '提供精确、专业的技术文档和数据提取指导', # 原来的agent描述
'backstory': '10年经验的技术专家,专注于工程文档的精确性和一致性', # 原来的agent描述
'suggestions': agent_data['suggestions'], # 后续优化的来源
'quality': agent_data['quality'], # 自动判断优化效果的指标
'final_summary': agent_data['final_summary'] # 后续优化的来源
}
# 保存优化配置
with open('optimized_agent_config.pkl', 'wb') as f:
pickle.dump(optimized_config, f)
应用训练后的最佳配置,直接用于生产
更新agent的描述:
1、把suggestion和final_summary无脑贴入backstory字段【必选】
2、通读建议和摘要,人工(或者直接借助AI大模型)更新goal【可选】
附,suggestion和final_summary信息提取脚本:
# training_extract.py
import pickle
import pprint
# Load the trained agents data
with open('trained_agents_data.pkl', 'rb') as f:
trained_data = pickle.load(f)
# Get the name of the trained agent
agent_name = list(trained_data.keys())[0]
agent_info = trained_data[agent_name]
# Print the key optimization suggestions
print(f"Agent Name: {agent_name}")
print("\n--- Final Summary for Agent ---")
pprint.pprint(agent_info.get('final_summary'))
print("\n--- Detailed Suggestions for Optimization ---")
pprint.pprint(agent_info.get('suggestions'))
日后如有更多优化需求,构建自动优化流程
略
本质上就是在优化后的trained_agents_data.pkl基础上自动化更新agent描述,并构建一个闭环
展望&疑问
其实有点没搞明白,参考crewai的最佳实践经验,一个好的agent设计,80%是task的设计,20%才是agent,那么为啥train的结果只能应用于agent?task设计如何优化呢?
是不是因为恰恰是train的自动化机制使得agent优化非常简单,所以80%的task设计都体现在人工反复雕琢上?
pkl文件是啥?
pkl是Python的pickle格式文件,用于序列化Python对象,这些文件对于理解训练过程和优化Agent非常有用。
pkl不是缓存文件,是极其宝贵的资产,请勿删除!!!
trained_agents_data.pkl中存储了最佳配置建议,可以直接在agents和tasks中进行优化
更多推荐
所有评论(0)