codefuse-chatbot/sources/readme_docs/coagent/coagent.md

51 lines
4.0 KiB
Markdown
Raw Normal View History

## 📜 目录
- [简介](#简介)
- [模块分类](#模块分类)
## 简介
为了提高大型模型在推理准确性方面的表现,业界出现了多种创新的大型语言模型(LLM)玩法。从最早的CoT、ToT到GoT这些方法不断拓展了LLM的能力边界。在处理复杂问题时我们可以通过ReAct过程来选择、调用和执行工具反馈同时实现多轮工具使用和多步骤执行。
但对于更复杂的场景例如复杂代码的开发单一功能的LLM Agent显然难以胜任。因此社区开始发展出多Agent的组合玩法比如专注于metaGPT、GPT-Engineer、chatDev等开发领域的项目以及专注于自动化构建Agent和Agent对话的AutoGen项目。
经过对这些框架的深入分析发现大多数的Agent框架整体耦合度较高其易用性和可扩展性较差。在预设场景中实现特定场景但想要进行场景扩展却困难重重。
因此我们希望构建一个可扩展、易于使用的Multi-Agent框架以支持ChatBot在获取知识库信息的同时能够辅助完成日常办公、数据分析、开发运维等各种通用任务。
本项目的Mutli-Agent框架汲取兼容了多个框架的优秀设计比如metaGPT中的消息池message pool、autogen中的代理选择器agent selector等。
<div align=center>
<img src="/sources/docs_imgs/luban.png" alt="图片">
</div>
以下模块将从5个方面介绍Multi Agent框架所需要素
- Agent Communication在Multi Agent框架中确保Agent可以有效地进行信息交流对于管理上下文以及提高问答效率至关重要。
a. 遵循简洁直观易于理解的链式对话原则将Agent以线性方式排列串连成一个执行链路。
b. 借鉴metaGPT中的Message Pool框架允许Agent对Message Pool进行推送和订阅使链路更加灵活。有利于精细化Prompt工程的场景但难以把握复杂链路的关系分析。
- Standard Operation ProcessSOP对LLM的生成结果进行标准化解析和处理。
a. 定义Agent的 Input 和 Output 范围能够组装和解析相关Action和Status保证框架运行的稳定性
b. 封装多种基础Action执行模块如Tool Using、Planning、Coding、Direct Answering、final answer等SOP标识以满足Agent的基本工作需求。
- Plan and Executor增加LLM的Tool使用、Agent调度、代码的生成。设置了几种基本链路例如
a. 单轮问答也可以扩展到CoT、ToT、GoT等形式。
b. ReAct基础的响应决策过程模型设置SOP 状态以终止循环
c. TaskPlaning - Executor任务完成即可结束
- Long-short term memory ManagementMulti-Agent与单Agent的关键区别在于Multi-Agent需要处理大量的交流信息类似人类团队协作的过程。增加一个专门负责内容总结类似于会议助理的Agent对长期记忆进行总结并提更有效信息传递给下一位Agent而非传递所有内容给下一位Agent。
- Human-agent interaction面对复杂场景时需要人类介入Agent交互过程并提供反馈。通过上述 Long-short term memory Management 和 Agent Communication 过程使LLM能准确理解人类的意图从而更有效地完成任务。
总的来说这五个要素共同构建了一个Multi Agent框架确保Agent之间的协作更加紧密和高效同时也能够适应更复杂的任务需求和更多样的交互场景。通过组合多个Agent链路来实现一个完整且复杂的项目上线场景Dev Phase如Demand ChainCEO、Product Arguement ChainCPO、CFO、CTO、Engineer Group ChainSelector、Developer1~N、QA Engineer ChainDeveloper、Tester、Deploy ChainDeveloper、Deploer
## 模块分类
2024-01-29 11:40:31 +08:00
- [connector](/sources/readme_docs/coagent/connector/connector_agent.md)
- document_loaders
- embeddings
- llm_models
- orm
- sandbox
- service
- text_splitter
- tools
- utils