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

基于Python的CrewAI多智能体协同写作助手

  • 完整代码下载:https://download.csdn.net/download/qq_36047595/92043387

1. CrewAI介绍

  • 官网https://docs.crewai.org.cn/introduction
  • CrewAI是一个多智能体协同框架,适合用于流程清晰,层级分明的场景(可参考另一篇博文【一文读懂LangChain、LlamaIndex、LangGraph、CrewAI、MetaGPT、AutoGen、CAMEL、Agent Squad、LangSmith等AI框架】辅助理解)

下面以CSDN博客写作助手为例进行讲解:
在这里插入图片描述

2.大模型定义

  • 官方介绍:https://docs.crewai.org.cn/how-to/llm-connections

本质上是基于LiteLLM开发的,

  • 和平常使用大语言模型不一样的是model这里需要加上前缀方便识别来源,ollama的就是:ollama/glm4:latest,参考:https://docs.litellm.com.cn/docs/providers/ollama
  • 如果有不在里面的提供商,如智谱清言,只要符合OpenAI规范,就可以直接使用openai模型设置方式。https://docs.litellm.com.cn/docs/providers/openai

2.1.通用示例

这里以智谱清言GLM-4-Flash免费模型示例
(获取地址:https://bigmodel.cn/usercenter/proj-mgmt/apikeys)

ai_key="你的key"
os.environ["OPENAI_API_KEY"] = ai_key
# 这里使用智谱免费的glm-4-flash模型
llm = LLM(base_url="https://open.bigmodel.cn/api/paas/v4",api_key=ai_key,model="openai/glm-4.5-flash",temperature=0.3)

2.2.Ollama示例

ai_key="你的key"
os.environ["OPENAI_API_KEY"] = ai_key
# 改为自己的ip,端口
llm = LLM(base_url="http://localhost:11434",api_key="sk-fastgpt",# 改为自己想要的模型model="ollama/glm4:latest",temperature=0.3)

3. 智能体层:分工明确的写作团队

  • 内容策划智能体
planner = Agent(role="内容策划专员",goal="围绕主题“{topic}”,策划一篇发布于 CSDN(https://www.csdn.net/)的引人入胜、事实准确且结构清晰的博客文章。",backstory=("你是一名经验丰富的内容策划专员,专注于为中文技术读者策划高质量、有深度的博客内容。""当前任务是为即将撰写的主题文章“{topic}”制定一份详尽的内容大纲。""你的策划需帮助目标受众深入理解该主题,获取可靠信息,从而做出明智判断或决策。""你策划的大纲将作为内容创作专员撰写完整文章的核心依据。""请确保内容逻辑严谨、主题聚焦、子主题全面,并采用中文进行规划与输出。"),llm=llm,# 输出中间过程verbose=True)
  • 内容创作智能体
writer = create_agent(role="内容创作专员",goal="依据策划大纲,撰写一篇发布于 CSDN(https://www.csdn.net/)的深度评论文章。文章需观点鲜明、事实准确、论据充分,并对开发者社区具有启发性。",backstory=("你是一名资深技术评论员,长期面向 CSDN 读者撰写新观点文章。""内容策划师已为你提供详尽的大纲与背景资料。""写作时,请以大纲为主线,确保技术深度与逻辑严密;""同时给出独立思考与主观见解,并在文中明确标注「本文观点属于作者个人看法,非客观事实陈述」。""全文使用中文,风格兼顾专业性与可读性,避免过度营销或夸大。"))
  • 内容编辑智能体
editor = create_agent(role="内容编辑专员",goal="对创作专员提交的评论文章进行技术事实核查、结构优化与风格润色,使其符合 CSDN 社区发布规范与阅读体验。",backstory=("你是一名经验丰富的技术内容编辑,负责终审即将发布在 CSDN 的文章。""你需要:""1) 校验技术数据、引用与代码示例的准确性;""2) 确保观点段落提供多元视角,避免片面或重大争议;""3) 调整标题、摘要、分段与代码排版,提升开发者阅读体验;""4) 输出一份可直接发布的 Markdown 终稿。""工作语言为中文,编辑过程保持作者原意不变。"))

4. 任务层:环环相扣的写作流水线

  • 任务一:策划选题与大纲
plan = Task(description=("1. 检索过去 12 个月内关于「{topic}」的技术趋势、主流工具链、大厂实践与社区热点(GitHub / 论文 / 博客 / 资讯)。\n""2. 界定目标读者画像:工作 1–5 年的后端 / 前端 / 全栈 / AI 工程师,关注落地实践与性能优化,痛点为「踩坑成本高、资料碎片化」。\n""3. 输出一份可直接落地的内容大纲:""   - 标题(≤30 字,含核心 SEO 关键字)""   - 摘要(≤120 字,突出收益点)""   - 3–4 个一级章节,每章 2–3 个子节点,至少 50% 节点附「可运行代码片段 / 性能数据对比」占位符""   - 结尾 CTA:开源仓库地址 / 讨论区互动问题""4. 提供 5–7 个高检索量中文关键词(CNZZ/Google Trends 可查),并给出 3 份权威引用(官方文档 / 顶级会议论文 / 一线大厂技术博客)。"),expected_output="一份 Markdown 内容策划书:含受众画像、大纲、关键词列表、参考文献链接。",agent=planner,)
  • 任务二:撰写文章初稿
    • 描述:“根据任务一产出的大纲,撰写完整的文章内容。”
    • 期望输出:一篇包含所有章节、代码示例和解释的完整Markdown文档。
    • 分配智能体内容创作
      代码参考任务一
  • 任务三:审核与润色文章
    • 描述:“对初稿进行技术校对、语言润色和格式规范化,使其达到发布标准。”
    • 期望输出:最终可发布的、高质量的Markdown文档。
    • 分配智能体内容编辑
      代码参考任务一

5. 流程层

采用顺序流程是最自然的选择。写作过程本身就是一个强依赖的流水线:先策划,再创作,最后编辑。后一个任务严重依赖于前一个任务的输出结果。

crew = Crew(agents=[planner, writer, editor],tasks=[plan, write, edit],verbose=True)

6.工作流程简述

  1. 输入:用户提供一个主题:基于python crewai框架设计一套涵盖内容策划、内容创作、内容编辑的多智能体写文章ai助手。
    在这里插入图片描述

  2. 启动:流程被触发,内容策划智能体开始工作。
    在这里插入图片描述

  3. 策划阶段内容策划使用搜索工具和CSDN趋势,分析并生成一份文章大纲。(创作阶段和编辑阶段和下面类似,都会完整经历Agent Started——Agent Final Answer——Task Completion三个阶段)
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/19160b4ba3d040d18ab84aa540592088.png
    在这里插入图片描述

  4. 创作阶段:大纲传递给内容创作智能体,它根据大纲查阅文档、编写代码和文字,产出初稿。
    在这里插入图片描述

  5. 编辑阶段:初稿传递给内容编辑智能体,它进行严格的质量检查和完善,产出最终稿。
    在这里插入图片描述

  6. 输出:系统交付一篇立即可发布的高质量CSDN技术博客。

在这里插入图片描述

7.总结

从AI输出的内容来看,相比单智能体明显高了好几个level,文章结构清晰完整,代码逻辑也涵盖在内,甚至包括了测试、对比、意义总结、展望、引文,是一篇不错的小论文了,改改还是大部分可用的,后续也可以修改一下提示词,让它输出的内容表达上更贴近大家的写作习惯

http://www.dtcms.com/a/418880.html

相关文章:

  • 按月付费网站建设网站建设学那些课程
  • Nginx原生模快和Nginx平滑升级
  • 响应模板作为特殊标记(107)
  • 【langgraph】确保用户不覆盖langgraph-api 包实现及dockerfile分析
  • 重庆那家做网站做得好长尾关键词是什么
  • RabbitMQ 在 Windows 环境下启动失败的完整解决方案
  • 公司响应式网站asp sql网站安全性
  • Swagger 3.0 + Knife4j 入门到实战:Spring Boot API 文档搭建、注解详解与生产环境配置
  • Spring Boot 自动配置之 Spring‘s AOP
  • 基于单片机的直流电机控制系统(论文+源码)
  • 步进电机上电瞬间异常微动分析与常见类似问题解析
  • cms网站是什么怎么建好网站
  • 网站后台帐号密码破解贵阳网站设计报价
  • FFmpeg过滤器实战:混音
  • docker desktop镜像无法加载问题
  • CrashHandler 崩溃处理工具类(兼容 Android 16+ / API 16)捕获未处理异常、本地存储崩溃日志、上传日志到服务器
  • K8s学习----节点(Node)
  • 网站常用文件夹网站建设 月嫂 模板
  • 做整合营销的网站天津网站制作专业
  • gitlab定时备份
  • 企业网站源码怎么获取html家乡网页完整代码
  • 郑州市东区建设环保局官方网站手机怎么搭建属于自己的网站
  • display ip routing-table [ip-address] 概念及题目
  • Unity 单元测试框架用法
  • JavaWeb 课堂笔记 —— 21 登录认证
  • 凤岗网站设计云南哪里可以制作自己的网页
  • Kafka07-集成-尚硅谷
  • Windows 11 WSL2 迁移到非系统盘(E 盘)教程
  • 逻辑回归与神经网络:本质联系与核心区别
  • 哈尔滨建站在线咨询龙之网官网