本示例展示了如何通过结合 exa 的搜索能力和学术写作技巧,创建一个先进的研究代理,以提供结构良好、基于事实的报告。

展示的关键功能:

  • 使用 Exa.ai 进行学术和新闻搜索
  • 通过引用生成结构化报告
  • 自定义格式和文件保存功能

示例提示:

  • “量子计算的最新进展是什么?”
  • “研究人工智能意识的当前状态”
  • “分析聚变能源的最新突破”
  • “调查太空旅游对环境的影响”
  • “探索寿命研究的最新发现”

代码

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

cwd = Path(__file__).parent.resolve()
tmp = cwd.joinpath("tmp")
if not tmp.exists():
    tmp.mkdir(exist_ok=True, parents=True)

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](link) - 主要发现/引文
    - [来源 2](link) - 主要发现/引文
    - [来源 3](link) - 主要发现/引文

    ---
    报告由 X-1000 教授生成
    高级研究系统部
    日期:{current_date}\
    """),
    markdown=True,
    show_tool_calls=True,
    add_datetime_to_instructions=True,
    save_response_to_file=str(tmp.joinpath("{message}.md")),
)

# 示例用法
if __name__ == "__main__":
    # 生成关于前沿主题的研究报告
    agent.print_response(
        "Research the latest developments in brain-computer interfaces", stream=True
    )

# 更多示例提示:
"""
尝试这些研究主题:
1. "分析固态电池的当前状态"
2. "研究 CRISPR 基因编辑的最新突破"
3. "调查自动驾驶汽车的发展"
4. "探索量子机器学习的进展"
5. "研究人工智能对医疗保健的影响"
"""

用法

1

创建虚拟环境

打开 Terminal 并创建一个 python 虚拟环境。

python3 -m venv .venv
source .venv/bin/activate
2

安装库

pip install openai exa-py agno
3

运行代理

python research_agent.py