LTM框架Letta
Letta 是一个开源框架,用于构建具有高级推理能力和透明长期记忆的有状态代理。Letta 框架是白盒和模型不可知论的。
使用pip安装letta
pip install -U letta
设置环境变量
配置 LLM 和嵌入模型的环境变量:
set OPENAI_API_KEY=sk-...
set LETTA_LLM_MODEL=gpt-4
set LETTA_EMBEDDING_MODEL=text-embedding-3-small
默认情况下,Letta 会使用 SQLite 作为数据库。如果你想使用 PostgreSQL,需要先设置LETTA_PG_URI
环境变量:
set LETTA_PG_URI="postgresql://user:password@localhost:5432/letta"
对于 Ollama
set OLLAMA_BASE_URL=http://localhost:11434
运行 Letta 服务器
使用以下命令启动 Letta API 服务器
letta server
访问 Letta ADE(代理开发环境)
Letta ADE 是一个基于Web的图形用户界面,用于创建、部署、交互和观察 Letta 代理。可以访问https://app.letta.com,将其连接到本地或远程的 Letta 服务器。
-
如果连接本地服务器,只要 Letta 服务器正在运行,你就会在左侧面板中看到 “Local server” 选项。
-
如果连接外部自托管服务器,则需要单击 “添加远程服务器”,输入服务器名称、IP 地址和服务器密码。
Letta API
接口文档地址:https://docs.letta.com/
-
project_id:在Project settings复制ID
-
token:在API keys复制API Key
1、列出所有代理
CURL
curl https://api.letta.com/v1/agents/ \-H "Authorization: Bearer <token>"
Python
from letta_client import Lettaclient = Letta(base_url="http://localhost:8283",project="YOUR_PROJECT",token="YOUR_TOKEN",
)
client.agents.list()
2、创建代理
CURL
curl -X POST https://api.letta.com/v1/agents/ \-H "Authorization: Bearer <token>" \-H "Content-Type: application/json" \-d '{}'
Python
from letta_client import Lettaclient = Letta(base_url="http://localhost:8283",project="YOUR_PROJECT",token="YOUR_TOKEN",
)
agent = client.agents.create(memory_blocks=[{"label": "human","value": "The human's name is Bob the Builder."},{"label": "persona","value": "My name is Sam, the all-knowing sentient AI."}],model="ollama/qwen3:4b",context_window_limit=16000,embedding="letta/letta-free"
)
3、向代理发送消息
CURL
curl -X POST https://api.letta.com/v1/agents/agent_id/messages \-H "Authorization: Bearer <token>" \-H "Content-Type: application/json" \-d '{"messages": [{"role": "user","content": [{}]}]
}'
Python
from letta_client import Letta, MessageCreate, TextContentclient = Letta(base_url="http://localhost:8283",project="YOUR_PROJECT",token="YOUR_TOKEN",
)
client.agents.messages.create(agent_id="agent_id",messages=[MessageCreate(role="user",content=[TextContent(text="text",)],)],
)