Agent 是自主运行的 AI 程序。传统软件遵循预先编程的步骤顺序。Agent 使用机器学习模型动态确定其行动方案。
Agent 的核心是模型、工具和指令:
- **模型:**控制执行流程。它决定是进行推理、执行操作还是响应。
- **工具:**使 Agent 能够执行操作并与外部系统进行交互。
- **指令:**是我们编程 Agent 的方式,教它如何使用工具和进行响应。
Agent 还拥有记忆、知识、存储和推理能力:
- **推理:**使 Agent 能够在响应前“思考”并“分析”其操作(即工具调用)的结果,这提高了响应的可靠性和质量。
- 知识:是 Agent 可以在运行时搜索的领域特定信息,以做出更好的决策并提供准确的响应(RAG)。知识存储在矢量数据库中,这种在运行时搜索的模式被称为 Agentic RAG/Agentic Search。
- **存储:**用于 Agent 将会话历史记录和状态保存在数据库中。模型 API 是无状态的,而存储使我们能够从中断的地方继续对话。这使得 Agent 具有状态,从而能够进行多轮、长期的对话。
- **记忆:**使 Agent 能够存储和回忆先前交互中的信息,从而使它们能够学习用户偏好并个性化其响应。
如果您是第一次构建 Agent,请在深入研究高级概念之前,遵循这些示例。
示例:研究 Agent
让我们使用 Exa 构建一个研究 Agent,以展示如何指导 Agent 以特定格式生成报告。在高级场景中,我们应该改用 结构化输出。
描述和指令已转换为系统消息,输入作为用户消息传递。设置
debug_mode=True
可查看后台日志。
创建研究 Agent
创建一个文件 research_agent.py
from datetime import datetime
from pathlib import Path
from textwrap import dedent
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.exa import ExaTools
today = datetime.now().strftime("%Y-%m-%d")
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
tools=[ExaTools(start_published_date=today, type="keyword")],
description=dedent("""\
您是 X-1000 教授,一位杰出的 AI 研究科学家,精通分析和综合复杂信息。您的专长在于创建引人入胜、基于事实的报告,将学术严谨性与引人入胜的叙事相结合。
您的写作风格是:
- 清晰且权威
- 引人入胜但专业
- 以事实为导向,带有适当的引用
- 受过教育的非专业人士易于理解\
"""),
instructions=dedent("""\
首先进行 3 次不同的搜索以收集全面信息。
分析和交叉引用来源的准确性和相关性。
遵循学术标准构建报告,同时保持可读性。
仅包含可验证的事实和恰当的引用。
创作引人入胜的叙事,引导读者了解复杂主题。
最后给出可操作的要点和未来启示。\
"""),
expected_output=dedent("""\
专业的 markdown 格式研究报告:
# {引人入胜的标题,抓住主题精髓}
## 执行摘要
{对主要发现和意义的简要概述}
## 引言
{主题的背景和重要性}
{研究/讨论的当前状态}
## 主要发现
{重大发现或发展}
{支持性证据和分析}
## 意义
{对该领域/社会的影响}
{未来方向}
## 主要收获
- {要点 1}
- {要点 2}
- {要点 3}
## 参考资料
- [来源 1](链接) - 主要发现/引文
- [来源 2](链接) - 主要发现/引文
- [来源 3](链接) - 主要发现/引文
---
报告由 X-1000 教授生成
高级研究系统部
日期:{当前日期}\
"""),
markdown=True,
show_tool_calls=True,
add_datetime_to_instructions=True,
)
# 示例用法
if __name__ == "__main__":
# 生成关于前沿主题的研究报告
agent.print_response(
"研究脑机接口的最新进展", stream=True
)
# 更多示例提示供尝试:
"""
尝试这些研究主题:
1. "分析固态电池的当前状态"
2. "研究 CRISPR 基因编辑的最新突破"
3. "调查自动驾驶汽车的发展"
4. "探索量子机器学习的进展"
5. "研究人工智能对医疗保健的影响"
"""
运行 Agent
安装库
pip install openai exa-py agno
运行 Agent
Responses are generated using AI and may contain mistakes.