AI Agent - bettermorn/KGCourse GitHub Wiki
智能体架构
案例
AutoGPT
中文介绍 GitHub星标超16万,爆火AutoGPT进阶版来了:定制节点、多智能体协同 https://mp.weixin.qq.com/s/dBL47yYoVNkyPoPG8pcLLA
代码仓库 https://github.com/Significant-Gravitas/AutoGPT
AutoGPT和coze,fastgpt类似,采用工作流,自主创建任务。agent-protocol
AutoGPT的功能:
模块化设计(Blocks): 每个Block都是一个独立的功能模块,你可以根据需要自由组合,创建出满足各种需求的AI代理。 功能扩展: 由于模块化的设计,功能扩展变得轻而易举。你只需要添加、删除或修改Blocks,就能轻松实现。 自定义行为: 通过组合不同的Blocks,你可以打造独一无二的代理行为,例如自动发布维基百科摘要到Discord频道,或者在Reddit上自动分享你感兴趣的内容。 简化构建过程: 无需编写复杂代码,只需选择合适的Blocks,像搭积木一样组合起来,就能轻松构建强大的AI代理。 高可靠性: 新一代AutoGPT着重提升了可靠性,解决了之前版本中存在的一些问题,让代理构建和部署更加稳定可靠。 AutoGPT的工作原理:
它分为前端的AutoGPT Builder和后端的AutoGPT Server。可以在Builder中像拼图一样设计代理流程,然后在Server上运行。Server会负责处理所有后台逻辑和数据处理,确保代理能够高效稳定地运行。
AutoGPT提供一系列强大的工具和框架:
Forge: 提供基础代码和结构,帮助你快速构建新的代理应用,省去了繁琐的样板代码编写工作。 Benchmark: 用于评估代理的运行效率和可靠性,确保你的代理在实际应用中表现出色。 CLI(命令行界面): 提供了一套命令行工具,方便你创建、启动和管理代理。
2.1.1 使用AutoGPT Forge 打造一个AI Agent 来源https://docs.agpt.co/forge/get-started/ 系列参考文档如下
1 AutoGPT Forge: A Comprehensive Guide to Your First Steps https://aiedge.medium.com/autogpt-forge-a-comprehensive-guide-to-your-first-steps-a1dfdf46e3b4
2 AutoGPT Forge: The Blueprint of an AI Agent https://aiedge.medium.com/autogpt-forge-the-blueprint-of-an-ai-agent-75cd72ffde6
3 AutoGPT Forge: Interacting with your Agent https://aiedge.medium.com/autogpt-forge-interacting-with-your-agent-1214561b06b
4 AutoGPT Forge: Crafting Intelligent Agent Logic https://aiedge.medium.com/autogpt-forge-crafting-intelligent-agent-logic-bc5197b14cb4
5 AI Agent Design Updating Human Preferences in AI: A Proof-of-Concept 在人工智能中更新人类偏好:概念验证
https://aiedge.medium.com/updating-human-preferences-in-ai-a-proof-of-concept-2d1b7e22faa2.
设计参考
🧩 组件:实现一个或多个协议的类。可以将其添加到代理以提供附加功能。查看内置组件中已提供的功能。 ⚙️ 协议:定义组件必须实现的一组方法的接口。协议用于对相关功能进行分组。 🛠️ 命令:使代理能够与用户和工具交互。 🤖 Agent:由组件组成的类。它负责执行管道和管理组件。 管道:组件上的一系列方法调用。管道用于按特定顺序执行一系列操作。目前,管道没有正式的类,它只是组件上的一系列方法调用。默认代理中实现了两个默认管道:propose_action和execute。请参阅🤖 代理以了解更多信息。 2.2 参考案例基于知识图谱的医药智能体Agent
利用Llama-3.1的原生函数调用能力,从知识图谱中检索结构化数据,以增强RAG应用程序
构建基于知识图谱的医药智能体Agent。
内容查看 https://mp.weixin.qq.com/s/93yLgkwZ5sQ8vx9dqBXeJQ
流程
用户询问关于35岁以下人群使用药物Lyrica的常见副作用的问题。
大型语言模型决定调用哪个函数以及所需的参数。在这个例子中,它选择了一个名为“side_effects”的函数,参数包括药物“Lyrica”和最大年龄35岁。
识别出的函数和参数被用来确定性和动态地生成数据库查询(Cypher)语句,以检索相关信息。
代理设计
提示模板包括系统消息、可选的聊天记录和用户输入。agent_scratchpad 保留给 LLM,因为它有时需要执行多个步骤才能回答问题,比如执行和从工具中检索信息。LangChain 库通过使用 bind_tools 方法,使得为 LLM 添加工具变得简单。
代理通过一系列转换和处理程序处理输入,这些处理程序格式化聊天记录,应用带有绑定工具的LLM,并解析输出。最后,代理设置了一个执行器来管理执行流程,指定输入和输出类型,并包括详细日志记录的冗长设置。
LLM识别到需要使用get_side_effects函数并提供适当的参数。该函数动态生成Cypher语句,获取相关信息,并将其返回给LLM以生成最终答案。
代码 https://github.com/tomasonjo/blogs/blob/master/llm/nvidia_neo4j_langchain.ipynb
Agent 的内容审核
中文
https://www.openaidoc.com.cn/docs/guides/moderation
https://www.openaidoc.com.cn/api-reference/moderations
英文
https://platform.openai.com/docs/guides/moderation
https://cookbook.openai.com/examples/how_to_use_moderation
https://openai.com/index/using-gpt-4-for-content-moderation/
https://openai.com/index/new-and-improved-content-moderation-tooling/
Agent的安全策略
中文
https://www.openaidoc.com.cn/docs/guides/safety-best-practices
英文
https://openai.com/safety-standards/
https://platform.openai.com/docs/guides/safety-best-practices
Agent的生产最佳实践
中文 https://www.openaidoc.com.cn/docs/guides/production-best-practices 英文 https://openai.com/blog/best-practices-for-deploying-language-models/
https://cookbook.openai.com/examples/how_to_handle_rate_limits
Agent的基准测试
https://github.com/Significant-Gravitas/AutoGPT/blob/master/benchmark/README.md
从code, retrieval, memory, and safety 代码、检索、内存和安全几方面测试智能体的性能。