phidata: 构建具有记忆、知识、工具和推理能力的智能代理
phidata 是一个用于构建智能代理系统的框架。它提供了一套强大的工具和功能,使开发者能够轻松创建具有高级能力的AI代理。
主要特性
phidata 框架的主要特性包括:
-
构建智能代理: 开发者可以创建具有记忆、知识库、工具使用和推理能力的AI代理。
-
代理团队协作: 支持构建多个代理组成的团队,实现代理之间的协作。
-
优雅的交互界面: 提供美观的用户界面,方便与代理进行交互。
-
监控与优化: 内置监控和评估功能,帮助开发者优化代理性能。
-
完整系统构建: 可以构建包含API、数据库和向量数据库的完整智能系统。
安装
使用pip可以轻松安装phidata:
pip install -U phidata
代理示例
Web搜索代理
phidata允许快速创建具有web搜索能力的代理。以下是一个简单的示例:
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.tools.duckduckgo import DuckDuckGo
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o"),
tools=[DuckDuckGo()],
instructions=["Always include sources"],
show_tool_calls=True,
markdown=True,
)
web_agent.print_response("Whats happening in France?", stream=True)
金融数据代理
phidata还支持创建专门处理金融数据的代理:
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.tools.yfinance import YFinanceTools
finance_agent = Agent(
name="Finance Agent",
model=OpenAIChat(id="gpt-4o"),
tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, company_info=True, company_news=True)],
instructions=["Use tables to display data"],
show_tool_calls=True,
markdown=True,
)
finance_agent.print_response("Summarize analyst recommendations for NVDA", stream=True)
代理团队
phidata允许将多个代理组合成一个团队,实现协作:
agent_team = Agent(
team=[web_agent, finance_agent],
instructions=["Always include sources", "Use tables to display data"],
show_tool_calls=True,
markdown=True,
)
agent_team.print_response("Summarize analyst recommendations and share the latest news for NVDA", stream=True)
推理代理
phidata提供了实验性的推理功能,帮助代理逐步解决复杂问题:
reasoning_agent = Agent(model=OpenAIChat(id="gpt-4o"), reasoning=True, markdown=True, structured_outputs=True)
reasoning_agent.print_response(complex_task, stream=True, show_full_reasoning=True)
RAG代理
phidata支持构建具有检索增强生成(RAG)能力的代理,可以从知识库中检索相关信息:
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
knowledge=knowledge_base,
show_tool_calls=True,
markdown=True,
)
agent.print_response("How do I make chicken and galangal in coconut milk soup", stream=True)
代理交互界面
phidata提供了一个漂亮的用户界面,方便与代理进行交互:
app = Playground(agents=[finance_agent, web_agent]).get_app()
if __name__ == "__main__":
serve_playground_app("playground:app", reload=True)
监控与调试
phidata内置了监控功能,可以追踪代理的会话:
agent = Agent(markdown=True, monitoring=True)
agent.print_response("Share a 2 sentence horror story")
同时还提供了调试模式,在终端显示详细的调试日志:
agent = Agent(markdown=True, debug_mode=True)
agent.print_response("Share a 2 sentence horror story")
更多功能
phidata还支持创建能够编写和运行Python代码的代理、使用SQL分析数据的代理,以及生成结构化输出的代理等。这些高级功能为开发者提供了更多的可能性。
总的来说,phidata是一个功能丰富、易于使用的智能代理开发框架。它为开发者提供了构建复杂AI系统所需的各种工具和功能,大大简化了智能代理的开发过程。