配置概览¶
Agent 是 Datus 的核心配置单元。它决定智能体的行为方式、所连接的模型与数据库,以及工作流如何执行。通过自定义 Agent,你可以让 Datus 适配不同环境与业务场景。
要点速览¶
- 弹性与扩展性:可配置多家 LLM、连接多种数据库,并定义节点策略与工作流规则
- 统一配置文件:
agent.yml同时用于 datus-agent 与 datus-cli -
启动优先级:
- 命令行
-f指定的文件 ./conf/agent.yml~/.datus/conf/agent.yml
- 命令行
-
职责分离:MCP(Model Context Protocol)配置独立存放在
.mcp.json,不混入agent.yml
这种结构让 Agent 模块化、可移植、易维护,便于在不同环境中保持一致的运行方式。
配置总览¶
Datus Agent 配置决定系统“如何工作”——选用哪些模型、组件如何连接(节点、工作流、存储、命名空间、基准测试),以及查询如何端到端处理。
| 模块 | 作用 | 关键概念/职责 |
|---|---|---|
| Agent | 全局设置与模型提供方 | 定义默认目标 LLM,以及受支持的提供方(类型、Base URL、API Key、模型名) |
| Nodes | 任务级处理单元 | 每个“节点”负责一环(结构关联、SQL 生成、推理、反思、输出、聊天、实用工具) |
| Workflow | 节点编排 | 定义顺序/并行/子工作流/反思路径,描述回答用户问题的执行链 |
| Storage | 向量与嵌入配置 | 管理嵌入模型、设备、存储路径,以及元数据/文档/指标的嵌入与检索 |
| Namespace | 数据库连接抽象 | 以命名空间封装多数据库连接(Snowflake、StarRocks、SQLite、DuckDB 等) |
| Benchmark | 评测与测试 | 配置基准数据集(如 BIRD-DEV、Spider2、Semantic Layer)评估 SQL 生成效果 |
配置结构¶
# 模型
models:
default: "openai:gpt-4"
providers:
openai:
type: "openai"
base_url: "https://api.openai.com/v1"
api_key: "${OPENAI_API_KEY}"
# 数据库连接
namespace:
production:
type: snowflake
account: "${SNOWFLAKE_ACCOUNT}"
username: "${SNOWFLAKE_USER}"
password: "${SNOWFLAKE_PASSWORD}"
# 工作流
workflow:
default: "reflection"
plans:
reflection:
- schema_linking
- generate_sql
- execute_sql
- reflect
- output
# 节点
nodes:
schema_linking:
model: "openai:gpt-3.5-turbo"
similarity_threshold: 0.7
# 存储与嵌入
storage:
embedding_model: "sentence-transformers/all-MiniLM-L6-v2"
vector_store_path: "./data/vector_store"
# 基准数据集
benchmark:
bird_dev:
path: "./benchmark/bird/dev_20240627"
database_pattern: "**/*.sqlite"
环境变量支持¶
所有配置项均支持环境变量与默认值展开:
# 直接引用环境变量
api_key: ${OPENAI_API_KEY}
# 带默认值
timeout: ${API_TIMEOUT:-30}
# 复杂插值
connection_string: "postgresql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT:-5432}/${DB_NAME}"
多环境配置¶
通过多份配置文件管理不同环境:
conf/
├── agent.yml # 主配置
├── agent.yml.dev # 开发环境覆盖
├── agent.yml.staging # 预发布环境
├── agent.yml.production # 生产环境
└── .mcp.json # MCP 服务器配置