考底利耶
Chanakya是一个 高级、开源、可自托管的语音助手 专为隐私、电源和灵活性而设计。它可以利用本地AI/ML模型来帮助控制数据,并支持通过配置连接到第三方MCP服务器。智能代理网络协作完成任务,提供见解,并维护正在进行的工作流程。
- Chanakya Flask应用程序已打开
http://127.0.0.1:5513 - 航空服务开启
http://127.0.0.1:5512 - 对话层打开
http://127.0.0.1:5514 - 可选A2A桥
http://127.0.0.1:18770
最重要的设置规则很简单:创建repo根目录 .env 和 mcp_config_file.json 在启动堆栈之前。启动脚本会立即读取这些文件。
快速开始
1.先决条件
- Python 3.11是本地开发最安全的默认设置。
python3.11 -m venv可在您的机器上使用。uvx如果按原样使用示例MCP配置,则可用。- 与OpenAI兼容的API密钥和基本URL。
2.创建虚拟环境
从repo根目录:
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .[dev]
python -m pip install -e ./apps/AI-Router-AIR
python -m pip install -e ./apps/chanakya_conversation_layer如果你更喜欢用conda进行日常开发,那也没问题。唯一的硬性要求是 systemd 安装程序需要一个repo根目录 .venv.
3.创建 .env 在开始任何事情之前
从签入模板开始:
cp .env.example .env然后编辑 .env 对于您的机器和凭据。使用 .env.example 作为支持变量的真实来源。
启动脚本会自动获取此文件并导出 ENV_FILE_PATH 对于子进程。如果缺少此文件,服务将在没有预期运行时配置的情况下启动。
4.创建 mcp_config_file.json 在开始任何事情之前
应用程序需要一个repo根 mcp_config_file.json.
从示例开始:
cp mcp_config_file.example.json mcp_config_file.json然后根据您的环境进行编辑(如果需要)。使用 mcp_config_file.example.json 作为默认MCP服务器布局的真实来源。签入示例包括本地Python支持的MCP服务器和 uvx-启动服务器。
5.启动堆栈
核心堆栈:
./scripts/start_chanakya_air.sh core堆芯加A2A组件:
./scripts/start_chanakya_air.sh core+a2a打开主UI http://127.0.0.1:5513.
6.停止堆叠
./scripts/stop_chanakya_air.sh启动脚本的作用
./scripts/start_chanakya_air.sh 按以下顺序启动当前本地堆栈:
- 航空服务
- Chanakya对话层
- 可选A2A服务
core+a2a - Chanakya Flask应用程序
它还:
- 读取
.env从repo根目录,除非ENV_FILE_PATH已设置 - 在下写入PID文件和日志
build/runtime/ - 启动后打印服务URL
使用 ./scripts/stop_chanakya_air.sh 彻底停止一切。
所需配置
.env
起点 .env.example 并将其复制到位:
cp .env.example .env然后编辑 .env 与您的当地价值观。替换所有标记为的占位符值 ``:
| 变量 | 描述 | 示例 |
|---|---|---|
OPENAI_BASE_URL | 您的LM Studio或OpenAI兼容服务器端点 | http://127.0.0.1:1234/v1 |
OPENAI_API_KEY | 模型服务器的API密钥 | lm-studio (或您的钥匙) |
DATABASE_URL | SQLite数据库的路径 | sqlite:////home/user/chanakya_data/chanakya.db |
中的默认值 .env.example 使用占位符值,不会开箱即用。
地方发展中使用的常见变量包括:
CHANAKYA_CORE_AGENT_BACKEND=local
A2A_AGENT_URL=http://127.0.0.1:18770
AIR_SERVER_PORT=5512
CHANAKYA_PORT=5513
CONVERSATION_LAYER_PORT=5514mcp_config_file.json
从签入模板开始:
cp mcp_config_file.example.json mcp_config_file.json此文件定义了Chanakya可以连接的MCP服务器。示例文件已经包含以下条目:
mcp_websearchmcp_fetchmcp_calculatormcp_code_executionmcp_filesystemmcp_gitmcp_httpmcp_jsonmcp_shell_utilsmcp_weathermcp_mapmcp_timermcp_work_toolsmcp_artifact_tools
如果添加或删除MCP服务器,请在之后重新启动堆栈,以便工具加载程序使用更新的配置重新连接。
本地开发
测试、起毛和类型检查
从激活环境的repo根目录:
pytest apps/chanakya/test
python -m ruff check apps/chanakya/
python -m mypy apps/chanakya/对于重点测试运行:
pytest apps/chanakya/test/test_agent_manager.py -q数据库实用工具
python scripts/db_viewer.py
python scripts/update_database.py
python scripts/clear_database.py笔记:
scripts/clear_database.py具有破坏性。- 如果
DATABASE_URL如果未设置,则默认SQLite数据库为chanakya_data/chanakya.db.
手动烟雾检查
这些依赖于外部工具,不是默认的验证路径:
python scripts/run_maf_tools.py
python scripts/test_mcp_fetch_connectivity.py --mode with-wrapper
python scripts/test_mcp_fetch_connectivity.py --mode without-wrapper运行时文件
运行时状态写在 chanakya_data/ 和 build/runtime/.
chanakya_data/保存应用程序状态,如SQLite数据库和共享工作区数据。build/runtime/保存启动脚本中的PID文件和服务日志。
如果启动失败,请检查最近的日志 build/runtime/ 第一。
Ubuntu上的服务安装
回购包括 systemd 核心堆栈的安装程序:
sudo ./scripts/install-autostart-ubuntu.sh重要细节:
- 它需要一个repo根
.venv - 它过去了
ENV_FILE_PATH指向repo根目录.env - 默认情况下,它为调用的非root用户安装服务
有用的命令:
sudo systemctl status chanakya.target
sudo journalctl -u chanakya-air.service -f
sudo journalctl -u chanakya-conversation-layer.service -f
sudo journalctl -u chanakya-app.service -f
sudo systemctl restart chanakya.target卸载:
sudo ./scripts/uninstall-autostart-ubuntu.sh仓库的规划
此工作区包含一些相关的代码库。主要有:
apps/chanakya/:主Flask应用程序、路由、模板、核心状态、测试apps/AI-Router-AIR/:端口5512上的本地堆栈使用的FastAPI服务apps/chanakya_conversation_layer/:单独的会话层包和测试scripts/:启动、关闭、数据库和服务管理脚本
如果要更改运行时行为,最相关的文件通常是:
apps/chanakya/core/app.pyapps/chanakya/core/chat_service.pyapps/chanakya/core/store.pyapps/chanakya/agent/runtime.pyapps/chanakya/templates/apps/chanakya/static/js/air_voice.js
常见问题
堆栈启动但行为不正确
先检查一下:
.env存在于repo根目录,并具有预期的模型凭据。mcp_config_file.json存在于repo根目录。- 虚拟环境包括所有三个可编辑的安装。
build/runtime/*.log显示启动后所有服务都保持运行。
服务从错误的环境开始
启动脚本提供repo根目录 .env 自动。如果你想要一个不同的env文件,请设置 ENV_FILE_PATH 在调用脚本之前。
MCP工具缺失
确认:
- 该工具存在于
mcp_config_file.json - 其命令已安装在您的计算机上
- 编辑MCP配置后重新启动了堆栈
相关文件
mcp_config_file.example.json:MCP服务器配置的起点scripts/start_chanakya_air.sh:标准本地堆栈入口点scripts/stop_chanakya_air.sh:标准停机入口点scripts/install-autostart-ubuntu.sh:systemdLinux安装程序
