跳转到内容

搜索文档

输入即可搜索文档的所有页面。

文档菜单
解释受众 · 开发者与贡献者

实体领域模型

每个 Agent-Lab 应用背后的实体——以及它们如何持久化

本页面由英文机器翻译而来。如有出入,以原文为准。阅读英文原文

Agent-Lab 应用共享同一个领域模型,定义在 agent_lab/domain/ 中。同一个模型同时支撑着 REST API 的 schema、持久化层和智能体运行时——只需学习一次,你就能清楚每个端点读写的是什么。

实体领域模型

实体

实体 建模对象
Agent 一个 LLM 智能体实例——agent_name、agent_type(依据注册表进行校验)、启用标志和时间戳。一个实现,可对应多个已配置的实例。
AgentSettings 智能体实例的键值配置:提示词(Jinja2 模板)、集合名称、temperature、自定义值。每个值最多 16,000 个字符——这里正是通过 POST /agents/update_setting 调整智能体行为的地方。
LanguageModel 可供智能体使用的语言模型,及其供应商连接。
LanguageModelSettings 每个模型的参数(temperature、max tokens 等),通过 /llms 端点进行管理。
Integration 外部集成(例如某个 AI 供应商)及其配置。密钥存储在 Vault 中,绝不存入数据库。
Message 一轮对话:角色(human / assistant / tool)、内容、response_data,以及线程关联(replies_to)。通过 LangGraph 检查点与智能体的记忆一同持久化。
Attachment 附加到消息上的文件:原始内容、解析后的内容,以及用于检索的嵌入集合引用。

下面是一个已持久化的智能体设置示例——语音备忘录智能体的提示词和自定义值——摘自 notebooks/08_test_agent_type-multiagent-voice-assistant.ipynb:

智能体设置示例

数据存放位置

Agent-Lab 使用三个 PostgreSQL 数据库(外加 Redis)——由部署指南负责创建,并通过 db.url、db.vectors 和 db.checkpoints 进行配置(参见配置参考):

存储 内容
db.url 关系型数据:智能体、设置、模型、集成、消息、附件
db.vectors pgvector 嵌入——向量搜索与检索(/attachments/embeddings)
db.checkpoints LangGraph 检查点数据——智能体跨多次交互的记忆
Redis(broker.url) 发布/订阅代理,用于推送长时间运行操作的状态更新;同时用于存储 MCP OAuth 客户端信息

安全与密钥管理

密钥——集成凭据、模型 API 密钥以及配置载荷本身——均通过 Vault 进行管理。数据库只存储引用;敏感值会在启动时以及按需从 Vault 中获取。参见使用 Vault 管理密钥和配置参考。