工作原理¶
理解 OLAV 的三个核心概念,你就掌握了整个平台的运作方式。
本页为概念说明页,无独立 Claim。相关功能声明分布在各指南页。
三个核心概念¶
Agent(智能体)¶
Agent 是 OLAV 的"员工"——每个 Agent 是一个专注特定任务的 AI 助手。你可以把它想象成团队里的不同角色:
- quick Agent:负责快速查询,像是一个反应敏捷的助手
- config Agent:负责平台配置,像是一个系统管理员
- core Agent:负责代码执行和复杂分析,像是一个全能工程师
每个 Agent 的能力由 .olav/workspace/<agent>/AGENT.md 定义,包括它的职责描述、可调用的工具、以及触发路由的关键词。
Skill(技能)¶
Skill 是 Agent 的"武器"——一组 Python 工具函数,赋予 Agent 特定的能力。例如:
- 一个执行 SQL 查询的 Skill
- 一个调用外部 REST API 的 Skill
- 一个在知识库中搜索文档的 Skill
你可以为 Agent 安装新的 Skill 来扩展它的能力,就像给员工配备新工具。
Workspace(工作空间)¶
Workspace 是 .olav/workspace/ 目录——所有 Agent 和 Skill 的定义都存放在这里。它可以提交到 git,与团队共享。这意味着:
- 团队成员拥有相同的 Agent 能力
- Agent 的改进可以通过版本控制追踪
- 你可以在不同项目中使用不同的工作空间
一个查询是如何被处理的¶
当你输入一个问题时,OLAV 内部会经历以下流程:
你的问题: "数据库里有哪些表?"
│
▼
┌─────────────────────────────────────────────┐
│ 语义路由器 │
│ 分析问题内容,匹配 Agent 的 route_keywords │
│ → 选择最合适的 Agent(或使用你指定的 --agent) │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Agent 加载工具 │
│ 读取 AGENT.md 和 MANIFEST.yaml │
│ 加载所有关联的 Skill 工具函数 │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ LLM 推理 + 工具调用循环 │
│ LLM 分析问题 → 决定调用哪个工具 │
│ → 获取工具返回结果 → 综合生成回答 │
│ (可能多次调用工具,直到信息足够) │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 返回结果给你 │
│ 同时自动写入审计日志 (audit.duckdb) │
└─────────────────────────────────────────────┘
数据存储:哪些是共享的,哪些是私有的¶
OLAV 的数据分为两类:项目级(团队共享)和用户级(个人私有)。
项目级(存储在 .olav/ 下)¶
| 内容 | 位置 | 说明 |
|---|---|---|
| Agent 和 Skill 定义 | .olav/workspace/ |
✅ 可以提交 git,团队共享 |
| 审计日志 | .olav/databases/audit.duckdb |
所有人的操作记录,DuckDB 支持并发写入 |
| 业务数据 | .olav/databases/domain.duckdb |
业务数据、解析结果等 |
| API 密钥和配置 | .olav/config/api.json |
⚠️ 包含密钥,不要提交 git |
用户级(存储在 ~/.olav/ 下)¶
| 内容 | 位置 | 说明 |
|---|---|---|
| 认证令牌 | ~/.olav/token |
你的身份凭证 |
| 会话记录 | ~/.olav/sessions/ |
交互模式的历史,24h 后过期 |
| LLM 缓存 | ~/.olav/cache/{user}/llm_cache.db |
相同 prompt 不重复调用 LLM,实测命中时 0 token、<1ms 返回(约 2000x 加速) |
三种使用接口¶
| 接口 | 启动方式 | 适用场景 |
|---|---|---|
| CLI | olav "你的问题" |
脚本集成、一次性查询 |
| TUI | olav(不带参数) |
多轮对话、探索式分析 |
| Web UI | olav service web start |
团队共享、浏览器访问 |
三种接口背后使用相同的 Agent 和工具,能力完全一致。
下一步: 深入理解 Agent 与 Skill →