ACI.dev - 开源AI代理工具集成平台
项目标题与描述
ACI.dev是一个开源的基础设施层,旨在为AI代理提供统一的工具使用接口。项目核心价值包括:
- 提供600+工具的标准化接入
- 支持多租户认证和细粒度权限控制
- 实现动态工具发现机制
- 提供统一的模型-上下文-协议(MCP)服务器接口
项目采用Apache 2.0开源协议,主要技术栈包括Python、FastAPI、PostgreSQL等。
功能特性
- 多工具集成:支持600+第三方工具的标准化接入
- 统一认证:集中管理OAuth等认证流程
- 动态发现:AI代理可动态发现可用工具
- 细粒度权限:基于项目的权限控制系统
- 多协议支持:提供REST和CONNECTOR两种协议
- 配额管理:内置API调用配额控制系统
- 安全机制:支持多种安全方案(API Key/OAuth2/NoAuth)
安装指南
系统要求
- Python 3.12+
- Docker和Docker Compose
- PostgreSQL数据库
安装步骤
-
克隆仓库:
git clone https://github.com/aipotheosis-labs/aci.git cd aci
-
安装依赖:
pip install -r requirements.txt
-
配置环境变量:
复制.env.example
为.env
并修改配置 -
启动服务:
docker-compose up -d
-
初始化数据库:
alembic upgrade head
使用说明
基本使用
创建项目和代理:
from aci.cli.commands import create_project, create_agent
project = create_project(name="My Project", org_id="your-org-id")
agent = create_agent(project_id=project.id, name="My Agent")
API调用示例
import aci
# 初始化SDK
client = aci.Client(api_key="your-api-key")
# 搜索功能
functions = client.search_functions(intent="发送邮件")
# 执行功能
result = client.execute_function(
function_name="GMAIL__SEND_EMAIL",
arguments={"to": "user@example.com", "subject": "Hello", "body": "Test"}
)
开发者门户
项目包含基于Next.js的开发者门户,提供:
- 项目管理界面
- 应用配置
- 代理管理
- 使用分析
核心代码
数据库迁移示例
"""创建App表迁移"""
from alembic import op
import sqlalchemy as sa
def upgrade():
op.create_table(
"apps",
sa.Column("id", sa.UUID(), nullable=False),
sa.Column("name", sa.String(length=100), nullable=False),
sa.Column("display_name", sa.String(length=255), nullable=False),
sa.Column("provider", sa.String(length=255), nullable=False),
sa.Column("version", sa.String(length=255), nullable=False),
sa.Column("description", sa.Text(), nullable=False),
sa.Column("logo", sa.Text(), nullable=True),
sa.Column("categories", sa.ARRAY(sa.String()), nullable=False),
sa.Column("visibility", sa.Enum("PUBLIC", "PRIVATE"), nullable=False),
sa.PrimaryKeyConstraint("id"),
sa.UniqueConstraint("name")
)
功能执行器
class FunctionExecutor:
"""功能执行器基类"""
def execute(self, function, function_input):
# 预处理输入
function_input = self._preprocess_input(function, function_input)
# 执行功能
return self._execute(function, function_input)
def _preprocess_input(self, function, input_data):
# 验证输入schema
jsonschema.validate(input_data, function.parameters)
# 注入默认值
return processor.inject_defaults(function.parameters, input_data)
OAuth2管理器
class OAuth2Manager:
"""OAuth2流程管理器"""
def __init__(self, client_id, client_secret, auth_url, token_url):
self.client = AsyncOAuth2Client(
client_id=client_id,
client_secret=client_secret,
authorize_url=auth_url,
token_url=token_url
)
async def get_token(self, code):
return await self.client.fetch_token(code=code)
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码