简介
Phidata 的 Assistant 类是 Python 优先的 agent 抽象 —— 记忆、知识库、结构化输出、工具使用都作为关键字参数接进来。没有图、没有节点、除了工具注册没有装饰器。适合想要一个能长成生产 agent 的 Python 类、而不是一个接管整个代码库的框架的开发者。兼容任何走 LiteLLM 的 LLM 和 PgVector / Lance / SingleStore 知识后端。装机时间 5 分钟。
Hello assistant
from phi.assistant import Assistant
from phi.tools.duckduckgo import DuckDuckGo
assistant = Assistant(
description="Research assistant. Use web search aggressively, cite sources.",
tools=[DuckDuckGo()],
show_tool_calls=True,
markdown=True,
)
assistant.print_response("Compare Pinecone, Weaviate, Qdrant in 2026")加记忆
from phi.memory import AssistantMemory
from phi.memory.db.postgres import PgMemoryDb
assistant = Assistant(
memory=AssistantMemory(db=PgMemoryDb(table_name="assistant_memory")),
...
)记忆跨运行保存。下次会话以过去对话的摘要起手。
加知识(内置 RAG)
from phi.knowledge.pdf import PDFUrlKnowledgeBase
from phi.vectordb.pgvector import PgVector
kb = PDFUrlKnowledgeBase(
urls=["https://example.com/paper.pdf"],
vector_db=PgVector(table_name="kb"),
)
kb.load(recreate=False)
assistant = Assistant(
knowledge_base=kb,
add_references_to_prompt=True,
...
)Assistant 按 query 取相关 chunk 注入 prompt。
自带 playground
from phi.playground import Playground, serve_playground_app
app = Playground(assistants=[assistant]).get_app()
serve_playground_app("main:app", reload=True)localhost:7777 给你一个聊天 UI 测 Assistant —— 开发时用,生产别用。
FAQ
Q: Phidata 跟 Agno 啥关系? A: 同一个团队。Phidata 是旧品牌,Agno 是新名字加干净的运行时。Phidata 还维护但新功能都进 Agno。新项目优先选 Agno。
Q: Phidata 免费吗? A: 免费 —— Mozilla Public License 2.0 开源。托管的 Phidata Cloud(监控 + 认证)付费,但自己跑的部分全免费。
Q: Phidata 能配 Claude 吗?
A: 能 —— Phidata 底层走 LiteLLM。设 llm=Claude(model='claude-3-5-sonnet-20241022') 或 100+ provider 任意一个。工具、结构化输出、记忆都一样工作。