写点什么

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

作者:qife
  • 2025-07-06
    福建
  • 本文字数:1671 字

    阅读完需:约 5 分钟

项目标题与描述

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 数据库

安装步骤

  1. 克隆仓库:


   git clone https://github.com/aipotheosis-labs/aci.git   cd aci
复制代码


  1. 安装依赖:


   pip install -r requirements.txt
复制代码


  1. 配置环境变量:复制.env.example.env并修改配置

  2. 启动服务:


   docker-compose up -d
复制代码


  1. 初始化数据库:


   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
# 初始化SDKclient = 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 opimport 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 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
ACI.dev - 开源AI代理工具集成平台_开源项目_qife_InfoQ写作社区