OAK 本地智能体运行时

用可嵌入的 C++ 运行时,在本地先执行确定性技能,再安全调用经校验的工具。

Star 数
★ 1k
最近更新
1 个月前
License
Apache-2.0
主语言
C++

30 秒速览

运行形态
命令行工具代码库 / SDK开发框架
可在哪里用
通用 · 跨平台
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
CMake 3.18+C++17Python 3libcurl 开发文件(可选 HTTP 适配器)SQLite 开发文件(可选持久化存储)Shell / 命令行本地文件系统
典型场景
汽车软件团队可用 sparx demo automotive 原型验证本地车载控制流程,无需真实车辆或模型。
不适合
  • 需要已验证 Qualcomm QNN/Genie 集成的团队
  • 需要生产级加密或多步骤持久化 DAG 的项目

这个 Agent 能做什么,适合哪些场景?

OAK / MasterAgent 是一个 C++17 本地优先运行时,提供可构建的 sparx 命令行工具和可安装的 C++ SDK。master_agent::reference API 允许应用注册工具、参数模式、回调和精确短语技能;运行时先匹配确定性技能,再按需请求模型。它会校验工具名和参数,并返回实际工具结果;未匹配输入在未配置模型时返回 NO_ROUTE。默认只在内存中保存会话状态;显式启用 SQLite 后,可持久化执行回执和历史以支持重启后的请求去重及中断恢复。该参考运行时不提供 Qualcomm QNN/Genie 集成,相关平台接入需要自行完成。

通过 sparx demo automotive,运行模拟车载空调的内存演示:设置温度并读取结果,输出 JSON。用 sparx run --input ... 可处理单次输入;持续运行时可逐行输入并在同一进程保留演示状态。运行时先检查已注册的精确短语技能,再调用可选模型回调或本地模型 HTTP 适配器;模型可返回 JSON 或单个工具调用,工具名及参数必须通过校验后才执行。可通过 --state、--session 和 --request-id 启用 SQLite 回执与历史,重复请求会返回记录结果;未完成请求会标记为 UNKNOWN,需核验并显式对账。SDK 也支持上下文工具,其执行上下文包含请求身份、稳定幂等键、截止时间和协作式取消信号。

  1. 汽车软件团队可用 sparx demo automotive 原型验证本地车载控制流程,无需真实车辆或模型。
  2. 嵌入式 C++ 开发者可将 MasterAgent::Core 集成到应用中,注册受参数模式约束的业务工具。
  3. 需要本地推理的团队可连接单独运行的 llama-server,并通过 HTTP 适配器请求工具调用。
  4. 需要跨进程请求去重的业务应用可启用 SQLite,并在进程重启后恢复执行回执和历史。
  5. 库存系统开发者可参考 inventory example,对接独立 HTTP 服务并演练丢失响应后的 UNKNOWN 恢复与对账。

如何安装或部署这个 Agent?

需要 CMake 3.18+、C++17;启用 HTTP 适配器时需要 libcurl 开发文件,启用持久化时需要 SQLite 开发文件。测试和打包需要 Python 3。仓库提供 Linux 和 macOS 发布 CI 目标。

git clone https://github.com/OpenSparX/MasterAgent.git
cd MasterAgent
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel 4
ctest --test-dir build --output-on-failure

Ubuntu 上 HTTP 和 SQLite 依赖可按 README 安装:

sudo apt-get install libcurl4-openssl-dev libsqlite3-dev

无需 libcurl 的 SDK 和确定性 CLI 构建方式:

cmake -S . -B build-offline -DMASTER_AGENT_ENABLE_HTTP=OFF -DBUILD_EVAL=OFF
cmake --build build-offline --parallel 4

如需省去两个可选依赖:

cmake -S . -B build-minimal -DMASTER_AGENT_ENABLE_HTTP=OFF -DMASTER_AGENT_ENABLE_STORAGE=OFF
cmake --build build-minimal --parallel 4

如何使用这个 Agent?

先运行内存模拟演示;它不需要模型、凭据、网络或车辆硬件:

./build/cli/sparx demo automotive

用中文或英文输入测试已注册技能:

./build/cli/sparx run --input '把空调调到22度'
./build/cli/sparx run --input 'vehicle status'

连接自行启动的兼容 llama-server;运行时不会下载或启动模型,也不会自动回退到云端:

./build/cli/sparx run --endpoint 127.0.0.1:8080 --model local \
  --input 'Set the AC to 24 degrees'

设置超时和认证时,可将 API 密钥存入环境变量,并传入变量名:

./build/cli/sparx run --endpoint 127.0.0.1:8080 --model local \
  --timeout-ms 3000 --api-key-env MODEL_API_KEY \
  --input 'Set the AC to 24 degrees'

启用 SQLite 持久化并在重启后检查恢复状态:

./build/cli/sparx run --state ./state/agent.db --session alice --request-id ac-001 \
  --input 'set AC to 22 degrees'
./build/cli/sparx recover --state ./state/agent.db

集成 SDK 时,安装后通过 CMake 查找 MasterAgent,链接 MasterAgent::Core;HTTP 适配器可选链接 MasterAgent::Http。支持的公开入口为 master_agent::reference 中的 reference_runtime.h。

这个 Agent 有哪些优点和局限?

优点
  • 确定性精确短语技能无需模型,模拟演示也不需要网络或车辆硬件。
  • master_agent::reference 提供可安装的 C++ SDK、工具注册和参数校验接口。
  • 可选 SQLite 回执支持重启后的请求去重,并将未完成请求标记为 UNKNOWN 以便人工核验。
  • 上下文工具可接收稳定幂等键、截止时间和协作式取消信号,并返回明确的 committed、failed 或 unknown 结果。
局限
  • 项目版本为 0.4.0-alpha.3;README 将其描述为小型同步参考运行时。
  • HTTP 模型适配器要求单独运行兼容 llama-server;真实模型合规性取决于所选模型。
  • 工具参数模式仅支持原始对象模式子集;SQLite 不加密,也无法与真实设备形成事务或保证分布式 exactly-once。
  • Qualcomm QNN/Genie 集成需要平台接入,当前版本未验证;实验模块未接入参考 CLI。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
OAK 本地智能体运行时 当前 60 · 存在缺口 命令行工具免费 ★ 1k 1 个月前 C++ —
Dexto 51 · 缺口较多 命令行工具免费 + 模型费 ★ 660 1 天前 — Claude Code · OpenAI API · Claude API
Coven 79 · 表现良好 命令行工具免费 ★ 76 今天 Rust Codex · Claude Code
Aura IDE 77 · 表现良好 桌面应用免费 + 模型费 ★ 57 1 个月前 Python OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
60/ 100 五分制 3.0 / 5
信任安全 14/29
可靠稳定 8/14
适用触发 14/18
规范维护 11/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全14 / 29 · 2.4/5

README 展示工具名称和参数校验、显式启用持久化、API 密钥通过环境变量名读取,以及恢复和对账机制,因此最小权限、数据流可见性和外部效果控制有一定依据;但没有通用的用户确认流程,存储未加密,依赖安全证据有限。README 和测试文件包含带审计记录的 UNKNOWN 恢复路径,但没有通用回滚保证。许可证和 SECURITY.md 提供联系线索,然而发布者身份未验证,维护责任与更新路径仍不充分。

可靠稳定8 / 14 · 2.9/5

README 描述同步参考运行时及错误处理,且测试源码覆盖崩溃恢复和评估失败;但 SECURITY.md 仍称 0.3.x 为当前版本,而 README 标为 0.4.0-alpha.3,形成版本口径不一致。依赖可选开关和安装要求写得较清楚,错误状态如 NO_ROUTE、UNKNOWN、STORAGE_ERROR 有明确描述;本评估未执行这些测试。

适用触发14 / 18 · 3.9/5

README 面向 C++ SDK 集成者和 CLI 使用者,提供确定性技能、工具回调、模型适配器和持久化场景。它清楚说明 Qualcomm QNN/Genie 未验证、实验模块未接入参考 CLI、无云端自动回退及不提供多步持久 DAG,因此能力边界充分。技能按精确短语路由有助于限制触发,但自然语言覆盖能力及真实设备适配仍有限。

规范维护11 / 18 · 3.1/5

README 分层介绍快速开始、模型、持久化、SDK、能力状态和限制,并给出构建、安装及示例;Apache-2.0 文件完整。版本标为 alpha,但提供的文件未见变更历史,SECURITY.md 版本信息又与 README 不同。安全报告邮箱和承诺提供有限维护线索,但没有确认发布者身份或完整维护责任。

有效结果9 / 13 · 3.5/5

输出采用 JSON,提供 CLI、SDK、确定性技能及带恢复说明的业务示例,能为本地工具执行和集成提供实际价值。README 将依赖、模型服务和存储选择写明,也披露限制;不过描述中的亚 100ms Qualcomm NPU 和完全设备端能力没有此处证据支持,QNN 集成明确未验证。

证据核验4 / 8 · 2.5/5

README 的安装、能力和限制说明可与 CI 工作流及测试源码部分对照;崩溃恢复测试展示了具体状态、对账和审计断言。不同来源的交叉佐证有限,且测试源码并非本次执行结果。文档区分了已提供功能、实验模块、模拟评估与未验证的性能/硬件主张,事实和推断边界较清楚。

风险与缓解建议
  • 将亚 100ms Qualcomm NPU 和完全设备端描述视为未证实:README 明确指出 QNN/Genie 集成尚未验证,合成评估不能证明真实模型延迟或 NPU 性能。
  • 版本信号不一致:README 标为 0.4.0-alpha.3,SECURITY.md 则将 0.3.x 标为当前版本;持久化数据未加密。
证据充分度:低 评估于 2026年11月4日 审查版本 432189c60d2f
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v2.1.15
    发布说明摘录
    Full Changelog: https://github.com/OpenSparX/MasterAgent/compare/v2.1.14...v2.1.15
    在 GitHub 查看 ↗
  2. v2.1.14
    发布说明摘录
    Full Changelog: https://github.com/OpenSparX/MasterAgent/compare/v2.1.13...v2.1.14
    在 GitHub 查看 ↗
  3. v2.1.6
    发布说明摘录
    Full Changelog: https://github.com/OpenSparX/MasterAgent/compare/v2.1.5...v2.1.6
    在 GitHub 查看 ↗

常见问题

必须配置模型或付费 API 密钥吗?
不必。确定性技能和 automotive 演示可无模型运行;若要使用模型,可显式连接本地 llama-server,认证端点则可通过 --api-key-env 指定密钥环境变量名。
输入会自动发送到云端吗?
不会。运行时不会自动启用云端回退;只有显式配置 HTTP(S) 模型端点时才会向该端点发送请求。
SQLite 能保证设备操作只执行一次吗?
不能。它记录执行回执和历史,但 SQLite 与真实设备之间没有共同事务,不构成分布式 exactly-once 保证;中断请求会成为 UNKNOWN,需要外部核验和显式对账。
它是否已支持 Qualcomm NPU?
当前公开版本没有经验证的 Qualcomm QNN/Genie 集成;需要平台集成工作。README 也未声称已验证 NPU 性能或真实模型延迟。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents