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 管理密钥和配置参考。