Adam:可嵌入的跨平台AI智能体库
开源项目

Adam:可嵌入的跨平台AI智能体库

Heooo 05月07日12时01分 1 阅读

「Adam是一个用C语言编写的可嵌入AI智能体库,支持云API和本地模型,提供工具调用、记忆、语音等功能,可编译至多平台并嵌入SQLite/PostgreSQL。」

在AI开发领域,智能体(Agent)框架的灵活性和可嵌入性一直是开发者关注的重点。近日,一个名为Adam的开源项目引起了广泛关注。Adam是一个用C语言编写的可嵌入跨平台AI智能体库,旨在为开发者提供一个轻量级、高性能的智能体运行时环境。

Adam的核心设计理念是“可嵌入”。它通过单个头文件#include "adam.h"即可集成到项目中,提供完整的智能体循环:工具调用、记忆管理、会话管理、语音交互、流式输出和结构化输出。这种设计使得Adam非常适合嵌入到现有应用程序中,例如数据库、嵌入式系统或移动应用。

Adam的跨平台能力令人印象深刻。它支持在macOS、Linux、Windows、iOS、Android以及WebAssembly(WASM)上编译运行。这意味着开发者可以使用同一套代码,构建从桌面应用到移动端、甚至浏览器内的AI智能体。

在模型支持方面,Adam提供了统一的接口,可同时对接云端API和本地模型。云API方面支持Anthropic、OpenAI、Google Gemini、Groq、Together和xAI等主流服务商;本地模型则通过llama.cpp和whisper.cpp实现,支持GGUF格式的模型文件。开发者只需通过adam_settings_set_provider()函数切换provider,即可在不同模型间无缝切换。

以下是一个简单的使用示例:

#include "adam.h"
int main(void) {
    adam_init();
    adam_settings_t *s = adam_create_settings();
    adam_settings_set_provider(s, ADAM_API_ANTHROPIC, getenv("ANTHROPIC_API_KEY"), "claude-sonnet-4-20250514");
    adam_history_t *h = adam_history_create();
    adam_run_result_t r = adam_run(s, h, "What is the capital of France?");
    printf("%s\n", r.final_response); // "The capital of France is Paris."
    adam_run_result_free(&r);
    adam_history_destroy(h);
    adam_settings_destroy(s);
    adam_cleanup();
}

Adam还支持对话历史延续,开发者可以多次调用adam_run(),历史记录会自动传递,实现多轮对话。

Adam:可嵌入的跨平台AI智能体库

Adam的构建系统非常简洁。通过make deps命令即可构建llama.cpp和whisper.cpp依赖,make all编译核心库libadam.amake test运行161个单元测试(启用AddressSanitizer和UndefinedBehaviorSanitizer)。此外,还提供了多种演示命令:make chat启动交互式文本聊天(支持云端或本地模型),make vision测试本地视觉模型,make talk启动语音智能体(支持完全本地运行)。

Adam最引人注目的特性之一是它可以作为SQL扩展嵌入到SQLite和PostgreSQL中。这意味着开发者可以在数据库内部直接运行AI智能体,让智能体查询同一数据库中的数据。例如:

-- SQLite
.load adam
-- PostgreSQL
CREATE EXTENSION adam;
-- 配置
SELECT adam_config('provider', 'anthropic');
SELECT adam_config('api_key', 'sk-ant-...');
-- 用自然语言提问
SELECT adam_ask('How many users signed up last month?');
-- → "47 users signed up last month."
-- 生成SQL而不执行
SELECT adam_sql('top 5 products by revenue');
-- → "SELECT p.name, SUM(oi.quantity * oi.price) AS revenue FROM ..."

这种设计使得数据分析师和开发者可以直接在数据库环境中使用自然语言查询数据,无需编写复杂的SQL语句,大大降低了数据访问门槛。

Adam的智能体循环(adam_run())内部流程包括:构建系统提示(包含身份、指令、引导文件、记忆、日期时间)→ 检查护栏(通过on_before_send回调)→ 检查缓存→ 发送请求。这种结构化的流程确保了智能体行为的安全性和可预测性。

对于开发者而言,Adam提供了完整的API文档(API.md),详细说明了每个函数、类型和回调。项目还包含示例目录(examples/),方便快速上手。Adam的代码库采用C语言编写,性能优异,适合资源受限的环境。

总体而言,Adam作为一个可嵌入的跨平台AI智能体库,为开发者提供了一个轻量、灵活、高效的解决方案。无论是嵌入到现有应用中,还是作为数据库扩展,Adam都展现了强大的潜力。随着AI智能体技术的不断发展,像Adam这样的开源工具将推动更多创新应用的诞生。

# AI智能体 # 开源库 # C语言 # 跨平台 # 数据库集成

来源:Heooo AI工具导航

📰

资讯不存在

该资讯可能已被删除或不存在

返回资讯列表