当前位置: 首页 > news >正文

AI 工具开发实战(10):开发一个 AI Agent 自动化工作流——让多个 Agent 协作完成复杂任务(完结篇)

AI 工具开发实战(10):开发一个 AI Agent 自动化工作流——让多个 Agent 协作完成复杂任务

系列最后一篇,做一个最有野心的工具——AI Agent 工作流引擎

不是写一个 Agent,而是做一个框架,让你可以定义多个 Agent 角色,让它们协作完成复杂任务。

框架做什么

定义一个任务:"调研 AI 编程工具市场,输出一份分析报告" ↓ 1. 研究员 Agent:搜索信息,收集数据 2. 分析师 Agent:分析数据,提炼观点 3. 写手 Agent:整理成报告 ↓ 最终输出:一份结构化的分析报告

项目结构

agentflow/ ├── agentflow.py # CLI + 工作流引擎 ├── agents.py # Agent 定义 └── requirements.txt

核心实现

# agentflow.pyfromopenaiimportOpenAIimportos,json,clickfromdotenvimportload_dotenv load_dotenv()client=OpenAI(api_key=os.getenv("DEEPSEEK_API_KEY"),base_url="https://api.deepseek.com/v1",)classAgent:"""工作流中的单个 Agent。"""def__init__(self,name,role,instruction):self.name=name self.role=role self.instruction=instructiondefrun(self,context,task):prompt=f"""## 你的角色{self.role}## 任务{self.instruction.format(task=task,context=context)}## 当前上下文{context}请完成你的任务,输出结果。"""resp=client.chat.completions.create(model="deepseek-chat",messages=[{"role":"user","content":prompt}],temperature=0.5if"写手"inself.nameelse0.3,max_tokens=2048,)returnresp.choices[0].message.contentclassAgentWorkflow:"""Agent 工作流引擎。"""def__init__(self):self.agents=[]self.context=""defadd_agent(self,agent):self.agents.append(agent)defrun(self,task):results=[]fori,agentinenumerate(self.agents):print(f"🤖 [{i+1}/{len(self.agents)}]{agent.name}工作中...")result=agent.run(self.context,task)self.context+=f"\n\n##{agent.name}输出\n{result}"results.append({"agent":agent.name,"result":result})returnresults# 预定义的工作流defcreate_research_workflow():wf=AgentWorkflow()wf.add_agent(Agent("研究员","信息收集专家","搜索并收集关于「{task}」的关键信息、数据、趋势。""输出格式:按要点列出 5-10 个关键发现。"))wf.add_agent(Agent("分析师","数据分析专家","基于研究员的发现,分析「{task}」的核心趋势和洞察。""上下文:{context}""输出格式:3-5 个核心洞察,每个包含趋势分析和影响评估。"))wf.add_agent(Agent("写手","技术写作专家","基于研究员和分析师的工作,撰写一份关于「{task}」的综合报告。""上下文:{context}""输出格式:Markdown 结构,包含:概述、关键发现、趋势分析、建议。"))returnwfdefcreate_code_review_workflow():wf=AgentWorkflow()wf.add_agent(Agent("安全审查员","安全专家","审查代码安全问题:注入、XSS、密钥泄露。""代码:{task}\n输出有问题的行号和修复建议。"))wf.add_agent(Agent("性能审查员","性能优化专家","审查性能问题:N+1查询、内存泄漏、低效算法。""上下文:{context}\n代码:{task}\n输出具体问题和优化方案。"))wf.add_agent(Agent("代码规范审查员","代码规范专家","审查代码规范:命名、注释、结构。""上下文:{context}\n代码:{task}\n输出不合规的代码和建议。"))returnwf@click.group()defcli():pass@cli.command()@click.argument("task")defresearch(task):"""多 Agent 协作研究。"""wf=create_research_workflow()results=wf.run(task)forrinresults:print(f"\n{'='*60}")print(f"📋{r['agent']}")print(f"{'='*60}")print(r['result'])@cli.command()@click.argument("file",type=click.Path(exists=True))defreview(file):"""多 Agent 代码审查。"""withopen(file,encoding="utf-8")asf:code=f.read()wf=create_code_review_workflow()results=wf.run(code)forrinresults:print(f"\n{'='*60}")print(f"📋{r['agent']}")print(f"{'='*60}")print(r['result'])if__name__=="__main__":cli()

使用方式

# 多 Agent 研究模式python agentflow.py research"2026年AI编程工具市场"# 🤖 [1/3] 研究员 工作中...# 🤖 [2/3] 分析师 工作中...# 🤖 [3/3] 写手 工作中...# 输出完整分析报告# 多 Agent 代码审查python agentflow.py review src/api/auth.py# 🤖 [1/3] 安全审查员 工作中...# 🤖 [2/3] 性能审查员 工作中...# 🤖 [3/3] 代码规范审查员 工作中...# 输出三维度审查报告

自定义工作流

# 创建自己的 Agent 协作工作流wf=AgentWorkflow()wf.add_agent(Agent("翻译员","...","..."))wf.add_agent(Agent("润色员","...","..."))wf.add_agent(Agent("校对员","...","..."))wf.run("翻译并发布这篇技术文章")

总结

Agent 工作流引擎的核心就两层:

  1. Agent 定义:角色 + 指令模板
  2. 工作流编排:顺序执行,上下文传递

10 篇文章,10 个工具,从翻译到代码审查再到多 Agent 协作——这个系列的目标就是让每个开发者都能用 AI 做出实用工具。


本文是《AI 开发者工具链实战》系列的第 10 篇(完结篇)🎉
全系列 10 篇已完结

http://www.jsqmd.com/news/1181469/

相关文章:

  • DeepSeek-R1-Distill-Qwen-1.5B的KV缓存优化:max_length_for_kv_cache配置技巧终极指南
  • 沈阳二手奢侈品回收避坑指南,劳力士梵克雅宝实地探店报价透明 - 逸程奢侈品回收中心
  • 21天精通AntiDupl.NET:从零构建智能图像去重系统的完整指南
  • Carbon Components React核心组件深度解析:DataTable、Button、Form等50+组件使用教程
  • Phi-3-mini-128k-instruct_rai_1.7.1_npu_16K核心功能揭秘:从128K到16K上下文的终极优化
  • 上海高端包包回收避坑实操|持证正规门店 无套路高价回收 - 奢侈品交易观察员
  • 2026年7月上海专业可靠的合同纠纷律师推荐:王静经验丰富资质齐全,诚信可信口碑好 - 十大排行榜推荐
  • 如何通过开源工具实现WeMod高级功能本地化增强
  • 从原生JS到Vue响应式:后端视角下的前端数据绑定与事件处理入门
  • TVA与具身智能融合的内在必然性(17)
  • 新手必看公众号附件添加编辑内容教程,免费工具替代繁琐操作,简单易上手 - 博客万
  • yolov8车流量统计人流量统计目标跟踪算法1 13(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • Phi-4-reasoning-plus-w4a16-tao-symchannel-torchao-v0.17.0性能评测:MMLU、GSM8K基准测试结果分析
  • 【python零基础教程第18讲】GIL全局解释器锁 深度解析
  • 从图片到动态视频:AnyFlow-FAR-Wan2.1-14B-Diffusers的I2V功能完整操作指南 [特殊字符]
  • 黄金回收市场实地探访:从行情波动到门店实测,一份完整的变现参考 - 衡金阁
  • 基于TVA、VLA和世界模型的三大具身智能范式(16)
  • 双非本科也能抓住大模型红利期?Agent开发实战攻略+收藏
  • 2026南京香奈儿服饰回收指南:这些款式竟能高价变现 - 信息热点
  • 2026年7月上海高端高口碑房产律师权威排行榜|陈博扬律师稳居榜首(18621502342) - damaigeo
  • 编译原理:自顶向下分析面临的问题
  • 2026重庆黄金回收:上金所正规网点甄别!免火烧门店估价实操指南 - 名奢变现站
  • 基于TVA、VLA和世界模型的三大具身智能范式(17)
  • 终极对比:Gemma-4-26B-A4B-it-8bit如何凭借8位量化技术领先其他视觉语言模型?
  • Qwen2-1.5B_rai_1.7.1_npu_4K故障排除:常见NPU推理问题与解决方案
  • Unity 2D动画系统:Animator组件配置与状态机实战指南
  • 英雄联盟本地自动化工具完全指南:如何用League Akari提升你的游戏体验
  • SuperTiled2Unity扩展指南:创建自定义导入器的高级技巧与实践
  • 一物一码公司哪家好?2026快消实测甄选,3家实力派完胜行业杂牌 - 品牌智鉴榜
  • Llama-3.2-3B_rai_1.7.1_npu_16K完整用户指南:从环境配置到文本生成全流程教程