小众AI

letta-ai
letta-ai - 为 LLM 应用注入记忆能力的开发框架
该项目是用于构建具有记忆功能的 LLM 应用的 Python 框架,支持创建拥有长期记忆和持久状态的智能体(Agent),并能够集成多种 LLM API 服务。
  官网   代码仓

该项目是用于构建具有记忆功能的 LLM 应用的 Python 框架,支持创建拥有长期记忆和持久状态的智能体(Agent),并能够集成多种 LLM API 服务。

主要功能

  1. 记忆能力

    • Letta旨在构建具有先进记忆能力的LLM应用程序。通过其创新的虚拟上下文管理技术,Letta能够支持大型语言模型在有限的上下文窗口之外使用更多的上下文信息,从而记住用户和对话的历史。
    • 这项功能对于提供精细化与个性化服务至关重要,特别是在客户支持和医疗保健等领域,Letta可以帮助AI逐步学习用户的历史信息和对话,以更精准的方式提供反馈与指导。
  2. 推理能力

    • Letta不仅增强了LLM的记忆能力,还致力于提升其推理能力。这使得LLM在理解复杂问题和提供准确回答方面更加出色。
  3. 模型兼容性与透明性

    • Letta是一个白盒解决方案,意味着它可以与各种LLM配合使用,并支持透明操作。这种兼容性使得开发者能够在不同的模型提供商之间进行切换,为用户提供更多的选择和灵活性。
  4. 开发与部署便利性

    • Letta提供了一个CLI工具,用于创建和与代理进行交互,以及一个API服务器,用于更广泛的应用集成。这使得开发者能够更轻松地部署具有长期记忆功能的AI应用。
    • Letta还支持通过pip安装进行快速实验,以及使用Docker在生产环境中设置,支持不同的数据库后端。
  5. 社区参与与开源理念

    • Letta是一个开源项目,鼓励社区参与并提供多种贡献和支持途径。这种开源理念推动了AI技术的普及和民主化,使得更多的开发者能够接触到先进的AI技术,并将其应用于各种领域。

安装使用

运行 Letta 服务器

如果您使用的是 Letta Cloud,则可以跳过此步骤(您不需要运行自己的 Letta 服务器)。 相反,您只需要您的 Letta Cloud API 密钥

Letta 代理位于 Letta 服务器中,该服务器将它们持久化到数据库中。 您可以通过ADE(视觉界面)与您的Letta服务器内的Letta代理进行交互,并通过REST API和Python&TypeScript SDK将您的代理连接到外部应用程序。

运行 Letta 服务器的推荐方法是使用 Docker (查看官方安装指南). 您还可以使用(此处指南)安装和运行 Letta 服务器。pip

Letta 服务器可以连接到各种 LLM API 后端(有关更多详细信息,请参阅我们的 Docker 指南)。 在此示例中,我们将使用 OpenAI API 密钥:

# 将 '~/.letta/.persist/pgdata' 替换为要存储代理数据的任何位置docker run \ -v ~/.letta/.persist/pgdata:/var/lib/postgresql/data \ -p 8283:8283 \ -e OPENAI_API_KEY=“your_openai_api_key” \letta/letta:最新

如果您有许多不同的 LLM API 密钥,您还可以设置一个文件并将其传递给:.envdocker run

# 使用 .env 文件而不是传递环境变量docker run \ -v ~/.letta/.persist/pgdata:/var/lib/postgresql/data \ -p 8283:8283 \ --env 文件 .env \letta/letta:最新

Letta 服务器运行后,您可以通过端口访问它(例如,向 发送 REST API 请求)。 您还可以将服务器连接到 Letta ADE,以在可视化界面中访问和管理您的代理。8283http://localhost:8283/v1

访问 Letta ADE(代理开发环境)

Letta ADE 是一个图形用户界面,用于创建、部署、交互和观察您的 Letta 代理。 您可以在https://app.letta.com.

ADE 可以连接到自托管的 Letta 服务器(例如,在您的笔记本电脑上运行的 Letta 服务器)以及 Letta Cloud 服务。当连接到自托管/私有服务器时,ADE 使用 Letta REST API 与您的服务器通信。

如果你正在运行一个 Letta 服务器来支持最终用户应用程序(比如客户支持聊天机器人),你可以使用 ADE 来测试、调试和观察服务器中的代理。您还可以将 ADE 用作与 Letta 代理交互的通用聊天界面。

要将 ADE 与本地 Letta 服务器连接,只需导航到https://app.letta.com,您将在左侧面板中看到 “Local server” (本地服务器) 选项(如果您的服务器正在运行):

有关如何使用在远程服务器上运行的 Letta 服务器配置 ADE 的信息,请参阅我们的远程服务器指南

使用 Letta API 创建代理

让我们通过 Letta API 创建一个代理,然后我们可以在 ADE 中查看它(你也可以使用 ADE 来创建代理)。

要创建代理,我们将向 Letta 服务器发送 POST 请求(API 文档)。 在此示例中,我们将使用 Claude API 作为基本 LLM 模型,将 OpenAI API 用于嵌入模型(这需要在我们的 Letta 服务器上配置 和 ):OPENAI_API_KEYANTHROPIC_API_KEY

REST API(请求)

curl --request POST \  --url http://localhost:8283/v1/agents/ \ --header '内容类型: application/json' \--数据 '{“memory_blocks”:[    {“label”: “人类”, “value”: “这个人的名字叫 Bob the Builder”},    {“label”: “persona”, /标签“value”: “我叫 Sam,无所不知的有知觉的 AI。”    }],“llm”: “人类/克劳德-3-5-十四行诗-20241022”,“context_window_limit”:16000、“嵌入”: “openai/text-embedding-ada-002”,}'

响应将包含有关代理的信息:

REST API(响应)

{“description”:null,“metadata_”:null,“id”:“agent-...

使用 Letta API 向代理发送消息

Letta API 支持对代理步骤和流式处理令牌进行流式处理。 有关流式处理的更多信息,请参阅我们的流式处理指南

让我们尝试向新代理发送消息!我们将使用在上面的响应中收到的代理(以 开头)来代替(路由文档):idagent-...agent_id

REST API(请求)

curl --request POST \  --url http://localhost:8283/v1/agents/agent-a6984b2f-9ad6-43a9-b447-6d32d19a248a/messages \ --header '内容类型: application/json' \--数据 '{“消息”: [    {“role”: “用户”,“text”: “进展如何????”    }  ]}'

响应包含代理对消息的完整响应,其中包括内部想法/思路链、工具调用、工具响应和代理消息(针对用户):

REST API(响应)

{ “消息”: [    { id”: “消息-29d8d17e-7c50-4289-8d0e-2bab988aa01e”, date”: 2024-12-12T170556+0000”, message_type”: reasoning_message”, reasoning”: “感觉精力充沛,可以聊天了!准备好与 Bob the Builder 联系并分享一些积极的氛围。“    },    { id”: “消息-29d8d17e-7c50-4289-8d0e-2bab988aa01e”, date”: 2024-12-12T170556+0000”, message_type”: tool_call”, function_call”: { name”: send_message”, arguments”: {\n \message\“: \”嘿!我感觉很好,谢谢你的提问!你怎么样?你在想什么?\\n}”, function_call_id”: call_Qk0JZjoVnL4fivzQlVmJv56E      }    },    { id”: “消息-c4295e4c-56ae-4f77-93bf-6a8c3454205b”, date”: 2024-12-12T170556+0000”, message_type”: tool_call_return”, tool_return”: “无”, status”: “成功”, tool_call_id”: call_Qk0JZjoVnL4fivzQlVmJv56E”,    }], “用法”: { completion_tokens”:56 prompt_tokens”:2030 年、 total_tokens”:2086 step_count”:1  }}

在 ADE 中查看代理

我们已经创建了第一个有状态代理并发送了消息。这个代理存在于我们的 Letta 服务器中,这意味着我们可以在 ADE 中查看它(并在那里继续对话!

如果我们打开 ADE 并点击 “Agents”,我们应该会看到我们的 agent,以及我们发送给它的消息:

后续步骤

祝贺!🎉 您刚刚使用 Letta ADE、API 和 Python/Typescript SDK 通过 Letta 创建了您的第一个有状态代理并发送了消息。

现在,您已经使用 Letta 成功创建了基本代理,您可以开始构建更复杂的代理和 AI 应用程序。


更多...


Meetily
一个 AI 驱动的会议助手,可捕获实时会议音频、实时转录并生成摘要,同时确保用户隐私。
CHRONOS
CHRONOS是一种新颖的基于检索的时间线摘要 (TLS) 方法,通过迭代提出有关主题和检索到的文档的问题来生成按时间顺序排列的摘要。
pptx2md
将 Powerpoint pptx 文件转换为 markdown 的工具。