ACI.dev - 开源AI代理工具集成平台

项目标题与描述

ACI.dev是一个开源的基础设施层,旨在为AI代理提供统一的工具使用接口。项目核心价值包括:

  • 提供600+工具的标准化接入
  • 支持多租户认证和细粒度权限控制
  • 实现动态工具发现机制
  • 提供统一的模型-上下文-协议(MCP)服务器接口

项目采用Apache 2.0开源协议,主要技术栈包括Python、FastAPI、PostgreSQL等。

状态徽章
PyPI版本
许可证

功能特性

  • 多工具集成:支持600+第三方工具的标准化接入
  • 统一认证:集中管理OAuth等认证流程
  • 动态发现:AI代理可动态发现可用工具
  • 细粒度权限:基于项目的权限控制系统
  • 多协议支持:提供REST和CONNECTOR两种协议
  • 配额管理:内置API调用配额控制系统
  • 安全机制:支持多种安全方案(API Key/OAuth2/NoAuth)

安装指南

系统要求

  • Python 3.12+
  • Docker和Docker Compose
  • PostgreSQL数据库

安装步骤

  1. 克隆仓库:

    git clone https://github.com/aipotheosis-labs/aci.git
    cd aci
    
  2. 安装依赖:

    pip install -r requirements.txt
    
  3. 配置环境变量:
    复制.env.example.env并修改配置

  4. 启动服务:

    docker-compose up -d
    
  5. 初始化数据库:

    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智能小助手)
公众号二维码

posted @ 2025-07-06 23:01  qife  阅读(34)  评论(0)    收藏  举报