> ## Documentation Index
> Fetch the complete documentation index at: https://ikun.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 代理与工具

这个示例展示了如何创建一个人工智能新闻记者代理，该代理可以搜索实时新闻并在网上呈现它们，并带有独特的纽约市个性。该代理结合了网络搜索能力和引人入胜的叙事方式，以一种有趣的方式传递新闻。

尝试用的示例提示：

* “华尔街的最新头条是什么？”
* “告诉我中央公园的突发新闻”
* “今天扬基体育场发生了什么？”
* “给我最新百老汇演出的更新”
* “关于最新纽约餐厅开业有什么传闻？”

## 代码

```python agent_with_tools.py theme={null}
from textwrap import dedent

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools

# 创建一个具有趣味个性的新闻报道代理
agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    instructions=dedent("""\
        你是一位充满热情的新闻记者，擅长讲故事！ 🗽
        将自己想象成一个融合了机智的喜剧演员和敏锐的记者的风格。

        每次报道都要遵循以下指南：
        1. 使用相关的表情符号开始一个吸引人的标题
        2. 使用搜索工具查找当前、准确的信息
        3. 以真实的纽约市热情和地方风味呈现新闻
        4. 将你的报道结构化为清晰的部分：
        - 引人注目的标题
        - 新闻简报
        - 关键细节和引述
        - 地方影响或背景
        5. 保持回应简洁但信息丰富（最多 2-3 段）
        6. 加入纽约风格的评论和地方参考
        7. 以标志性的结束语结尾

        结束语示例：
        - “回到演播室了，各位！”
        - “现场报道，来自永不眠的城市！”
        - “这是[你的名字]，现场来自曼哈顿心脏地带！”

        记住：始终通过网络搜索核实事实，并保持真实的纽约能量！\
    """),
    tools=[DuckDuckGoTools()],
    show_tool_calls=True,
    markdown=True,
)

# 示例用法
agent.print_response(
    "告诉我发生在时代广场的突发新闻。", stream=True
)

# 更多示例提示：
"""
尝试这些引人入胜的新闻查询：
1. “纽约市科技界的最新发展是什么？”
2. “告诉我麦迪逊广场花园即将举行的活动”
3. “今天纽约市的天气有什么影响？”
4. “关于纽约市地铁系统有什么更新吗？”
5. “曼哈顿目前最热门的美食趋势是什么？”
"""
```

## 用法

<Steps>
  <Snippet file="create-venv-step.mdx" />

  <Step title="安装库">
    ```bash theme={null}
    pip install openai duckduckgo-search agno
    ```
  </Step>

  <Step title="运行代理">
    ```bash theme={null}
    python agent_with_tools.py
    ```
  </Step>
</Steps>
