General Introduction
ACI.dev is an open source infrastructure platform designed to provide AI intelligences with rapid integration to over 600 tools. It ensures that intelligences have secure access to tools such as Google Calendar, Slack, and Brave Search through multi-tenant authentication and fine-grained permissions management. developers can access tools such as Google Calendar, Slack, and Brave Search through direct function calls or unified MCP Server-ready tools that flexibly adapt to any large-scale language modeling framework. ACI.dev provides a Python SDK and detailed documentation to support the rapid development of out-of-the-box AI intelligences for production environments.
Function List
- Integration with 600+ tools and support for services like Google Calendar, Slack, Brave Search, and more.
- Supports multi-tenant authentication, manages developer and user rights, and ensures data security.
- Provides a unified MCP server to simplify tool search and execution.
- Supports direct function calls and adapts to a variety of AI intelligence frameworks.
- Provides Python SDK for developers to call ACI API.
- Supports dynamic tool discovery, where intelligentsia can automatically select tools based on task intent.
- Provides OAuth2 and API key authentication to simplify the authorization process for third-party tools.
- Support for natural language permission boundaries for enhanced intelligentsia reliability.
- Open source community support that allows users to submit tool integration requests or contribute code.
- Provide detailed documentation and sample code to support quick start.
Using Help
Installation and Configuration
ACI.dev is an open source project hosted on GitHub. Developers can integrate ACI functionality by deploying the full platform locally (including the back-end server and front-end portal) or using the Python SDK. The following are detailed installation and usage steps:
1. Local deployment of the ACI.dev platform
To run the ACI.dev back-end server and front-end portal, follow these steps:
- Cloning Codebase: Run the following command in the terminal to get the ACI source code:
git clone https://github.com/aipotheosis-labs/aci.git cd aci
- Installation of dependencies: ACI uses Python 3.12+ and Docker. make sure that Docker and Docker Compose are installed. go to the
backend
directory, install the dependencies:cd backend uv sync source .venv/bin/activate
utilization
uv
Package Manager installs the dependencies. If theuv
, can be run:pip install uv
- Configuring Environment Variables: Copy the example environment variable file and modify it:
cp .env.example .env.local
exist
.env.local
The following key variables are set in theSERVER_OPENAI_API_KEY
: OpenAI API key for smartbody calls.CLI_OPENAI_API_KEY
: Same as the server key or another.- If using the Stripe billing feature, run the Stripe CLI to get the webhook signature key:
stripe listen --forward-to localhost:8000/v1/billing/webhook
Returns the output of the
SERVER_STRIPE_WEBHOOK_SIGNING_SECRET
add to.env.local
The
- Starting services: Start the backend and frontend with Docker Compose:
docker-compose up
The back-end API runs by default in the
localhost:8000
The front-end portal runs onlocalhost:3000
The - Access to the front-end portal: Open in browser
http://localhost:3000
, register for an account. After registration, the system automatically creates test projects and intelligences, and developers can manage tools and permissions through the portal.
2. Using the Python SDK
If you only want to invoke ACI functions through code, you can use the Python SDK:
- Installing the SDK::
pip install aci-python-sdk
- Initializing the SDK::
from aci import ACI import os client = ACI(api_key=os.environ.get("ACI_API_KEY"))
ACI_API_KEY
Available on the ACI.dev platform (http://localhost:3000
) is obtained from the project settings. - Example: Search for available tools::
apps = client.apps.search(intent="搜索网页", allowed_apps_only=False) print(apps) # 返回与意图相关的工具列表
- Example: Execution Tool Functions::
result = client.functions.execute( function_name="BRAVE_SEARCH__WEB_SEARCH", function_parameters={"query": {"q": "北京天气"}}, linked_account_owner_id="user123" ) if result.success: print(result.data) else: print(result.error)
3. Using the Unified MCP server
The MCP server is the core component of ACI.dev and offers two modes: Application Server and Unified Server:
- application server: Direct access to the specified tool. For example, launch the application servers for Brave Search and Gmail:
uvx aci-mcp apps-server --apps "BRAVE_SEARCH,GMAIL" --linked-account-owner-id user123
- unified server: Dynamic discovery and execution of all ACI tools:
uvx aci-mcp unified-server --linked-account-owner-id user123 --allowed-apps-only
The Unified Server provides two meta-functions:
ACI_SEARCH_FUNCTIONS
(search tool) andACI_EXECUTE_FUNCTION
(Execution Tool), reducing the LLM context window footprint. - Configure account links: Before using the tool, you need to link your account on the ACI.dev platform. For example, link Brave Search:
result = client.linked_accounts.link( app_name="BRAVE_SEARCH", linked_account_owner_id="user123", security_scheme="API_KEY", api_key="your-brave-api-key" )
For tools that require OAuth2 (such as Gmail), the SDK returns an authorization URL, and the user completes the authorization in the browser.
4. Operation of special functions
- Dynamic tool discovery: The Unified MCP Server supports automated tool selection by intelligences based on task intent. Sample code:
from aci.meta_functions import ACISearchFunctions tools = [ACISearchFunctions.to_json_schema(format="OPENAI")]
Intelligent bodies can be passed
ACI_SEARCH_FUNCTIONS
Query task-related tools. - Multi-tenant certification: Developers can set separate permissions for different users. For example, restricting an intelligence to only use a specific user's Brave Search account:
client.functions.execute( function_name="BRAVE_SEARCH__WEB_SEARCH", linked_account_owner_id="user123", allowed_apps_only=True )
- Natural Language Authority BoundaryACI.dev supports defining permissions in natural language. For example, restricting an Intelligent to only "read calendar" and not "modify calendar" is configured through the front-end portal or SDK:
client.permissions.set( agent_id="agent123", boundaries={"calendar": ["read"]} )
- Community Contributions: Developers can submit requests for new tool integrations or contribute code directly via GitHub. References
CONTRIBUTING.md
cap (a poem)Integration Request Template
::gh issue create --title "New Integration: Twitter API" --body-file integration_request.yml
5. Access to documentation and examples
- official document: Access
https://aci.dev/docs
Get detailed API references and tutorials. - Tool List: View
https://aci.dev/tools
Learn about the 600+ tools supported. - Sample Projects: Reference
https://github.com/aipotheosis-labs/aci-agents
Get an example of intelligent body development.
caveat
- assure
.env.local
The API key in the - For local development, you can use DBeaver to connect to the database (parameters in the
.env.local
), view the data structure. - The Python SDK is in Beta and may have incompatible updates, so we recommend following the release notes on the GitHub repository.
- Some tools (such as Brave Search) require users to provide their own API keys, which may involve third-party fees.
application scenario
- Personal Assistant Chatbot
Build an AI assistant that searches the web, manages calendars, and sends emails with ACI.dev. Multi-tenant authentication ensures isolation of account data for different users, making it ideal for personal productivity. - Research Intelligence
Developers can use ACI.dev to integrate Brave Search and Notion to build intelligence that automatically searches and organizes research material for academic research or market analysis. - sales automation
ACI.dev supports CRM and Gmail integration, allowing developers to build sales intelligence that automatically generates lists of prospects and sends emails to them, improving the efficiency of the organization. - Customer Support Intelligence
Integrate Zendesk and Slack with ACI.dev to build intelligences that automatically respond to customer inquiries and manage work orders for enterprise customer service. - Open Source Community Collaboration
The open source nature of ACI.dev encourages developers to contribute new tool integrations to improve the platform ecosystem. For example, add the Twitter API to extend the functionality of intelligences.
QA
- What programming languages does ACI.dev support?
Mainly support Python, through the Python SDK to call the API. other languages can be accessed through the REST API, need to implement their own HTTP request. - How do I add a new tool integration?
To access the GitHub repositories, seeCONTRIBUTING.md
cap (a poem)Integration Request Template
, submit tool integration requests or contribute code directly. - What are the benefits of a unified MCP server?
pass (a bill or inspection etc)ACI_SEARCH_FUNCTIONS
cap (a poem)ACI_EXECUTE_FUNCTION
Two meta-functions to unify the management of 600+ tools, reduce LLM context window occupancy, and improve the efficiency of intelligentsia. - Do I need to configure separate authentication for each tool?
No. ACI.dev offers unified multi-tenant authentication, where developers simply link accounts in the platform and intelligences can securely access the tool. - Does ACI.dev charge a fee?
ACI.dev is an open source platform and is free to use. Some tools may require users to provide their own API keys, which may involve third-party fees. - How do I ensure that my smart body is safe to operate?
ACI.dev provides fine-grained privilege management and natural language privilege boundaries, allowing developers to set the scope of operation of intelligences through the front-end portal or SDK.