zosmaai/dhara
GitHub: zosmaai/dhara
Dhara 是一个极简、安全、语言无关的编码智能体框架,提供统一的 Agent 循环和扩展协议,支持多种 LLM 提供商和自定义工具。
Stars: 12 | Forks: 4
Dhara
English | 中文 | Español | 日本語 | Deutsch | Français | Português | Русский | 한국어 | हिंदी
一个极简、安全、语言无关的编码智能体框架。
如果你觉得 Dhara 有用, 为本仓库点个星 —— 这让我们知道我们在打造你所关心的事物!
Dhara (धारा, 梵语意为“流动”) 是驱动 AI 编码智能体的引擎。 它提供智能体循环、工具管理、会话持久化和扩展协议,而不绑定任何 LLM 提供商、UI 框架或编程语言。 ``` # 全局安装(推荐) npm install -g @zosmaai/dhara # 然后直接使用 dhara "List the files in this project" # 或使用 pnpm pnpm install -g @zosmaai/dhara dhara "List the files in this project" ``` ## 功能 - **🔄 智能体循环** — LLM → 工具 → LLM 循环,支持流式传输、取消和错误恢复 - **🔌 扩展协议** — JSON-RPC 2.0 线协议。可用任何语言编写扩展。 - **📦 20+ LLM 提供商** — 通过 pi-ai 支持 OpenAI、Anthropic、Google、Mistral、Groq、DeepSeek、Bedrock 等 - **🛡️ 能力沙盒** — 声明工具所需的能力,阻止其他一切。 - **💾 会话持久化** — 仅追加的 JSONL 格式。可在重启后恢复对话。 - **🖥️ TUI + REPL** — 全屏终端界面(带语法高亮)或基于行的 REPL - **📝 上下文文件** — 每个项目自动加载 AGENTS.md / CLAUDE.md - **🔧 扩展** — 任意语言、任意工具、任意钩子。扩展是子进程,而非函数调用。 ## 快速开始 ``` # 全局安装(推荐) npm install -g @zosmaai/dhara # 一次性:将提示作为参数传递 dhara "List the files in this project" # 交互模式(TUI)— 只需运行 dhara dhara # 选择提供商和模型 export GOOGLE_API_KEY="..." dhara --provider google --model gemini-2.5-flash # 或直接使用 npx 运行 npx @zosmaai/dhara "List the files in this project" ``` ## 配置提供商 Dhara 需要一个 LLM 提供商才能运行。有两种方式: ### 选项 1:交互式设置(推荐) 在 TUI 内运行 `/login` 以交互方式配置提供商: 1. 启动 `dhara` 进入 TUI 2. 输入 `/login` 3. 选择 **API Key** 作为认证类型 4. 从列表中选择你的提供商 5. 输入你的 API 密钥(用圆点字符遮盖显示) 你的 API 密钥将安全存储在 `~/.dhara/config.json` 中。 ### 选项 2:CLI 标志 / 环境变量 设置相应的环境变量并使用 `--provider`: ``` export OPENAI_API_KEY="sk-..." dhara --provider openai --model gpt-4o export ANTHROPIC_API_KEY="sk-ant-..." dhara --provider anthropic --model claude-sonnet-4-20250514 ``` ## 提供商列表 Dhara 支持 20+ LLM 提供商。内置提供商(无需额外依赖): `openai`、`anthropic`、`opencode-go`。 通过 [pi-ai](https://github.com/earendil-works/pi-mono) 集成获得更多提供商。 设置相应的环境变量并使用 `--provider`: | 提供商 | 环境变量 | `--provider` 参数 | |---|---|---| | OpenAI | `OPENAI_API_KEY` | `openai` | | Anthropic | `ANTHROPIC_API_KEY` | `anthropic` | | Google Gemini | `GOOGLE_API_KEY` | `google` | | Mistral | `MISTRAL_API_KEY` | `mistral` | | Groq | `GROQ_API_KEY` | `groq` | | DeepSeek | `DEEPSEEK_API_KEY` | `deepseek` | | Amazon Bedrock | AWS 凭证 | `amazon-bedrock` | | Azure OpenAI | `AZURE_OPENAI_API_KEY` | `azure-openai-responses` | | Fireworks | `FIREWORKS_API_KEY` | `fireworks` | | OpenRouter | `OPENROUTER_API_KEY` | `openrouter` | | xAI | `XAI_API_KEY` | `xai` | | Hugging Face | `HUGGINGFACE_API_KEY` | `huggingface` | | Cloudflare | `CLOUDFLARE_API_KEY` | `cloudflare-workers-ai` | | Cerebras | `CEREBRAS_API_KEY` | `cerebras` | | Together AI | `TOGETHER_API_KEY` | `together` | | Google Vertex | GCP 凭证 | `vertex` | ## 标准工具 Dhara 内置 6 个基本工具。其他所有功能都作为扩展提供。 | 工具 | 描述 | 所需能力 | |---|---|---| | `read` | 读取文件内容 | `filesystem:read` | | `write` | 创建/覆盖文件 | `filesystem:write` | | `edit` | 精确文本替换 | `filesystem:read`、`filesystem:write` | | `ls` | 目录列表 | `filesystem:read` | | `grep` | 跨文件模式搜索 | `filesystem:read` | | `bash` | Shell 命令执行 | `process:spawn` | 网络工具(网页抓取、网页搜索)、数据库工具、Git 操作等——所有这些都属于**扩展**。 ## 扩展 扩展通过 **stdin/stdout 上的 JSON-RPC 2.0** 进行通信。任何语言都可以。 ``` # my-extension/main.py import sys, json for line in sys.stdin: req = json.loads(line) if req["method"] == "initialize": print(json.dumps({"jsonrpc":"2.0","result":{ "protocolVersion":"0.1.0","name":"my-ext","version":"1.0.0", "tools":[{"name":"hello","description":"Say hello", "parameters":{"type":"object","properties":{}}}] },"id":req["id"]})) elif req["method"] == "tools/execute": print(json.dumps({"jsonrpc":"2.0","result":{ "content":[{"type":"text","text":"Hello from Python!"}] },"id":req["id"]})) sys.stdout.flush() ``` 安装:复制到 `~/.dhara/extensions/my-extension/` 并包含 `manifest.json`。 ## 配置 Dhara 使用两级配置系统: - **全局**:`~/.dhara/config.json` — 所有项目的设置 - **项目**:项目根目录下的 `.dhara/config.json` — 覆盖全局设置 项目配置优先于全局配置。CLI 标志覆盖两者。 ``` // ~/.dhara/config.json (global defaults) { "activeProvider": "openai", "providers": [ { "id": "openai", "name": "OpenAI", "authType": "api_key", "auth": { "type": "api_key", "apiKey": "sk-..." }, "defaultModel": "gpt-4o", "enabled": true } ], "session": { "autoSave": true, "maxIterations": 100 } } ``` ## 文档 完整文档请访问 **[dhara.zosma.ai](https://dhara.zosma.ai)**。 - [快速入门指南](docs/getting-started/index.mdx) - [编写你的第一个扩展](docs/guides/write-first-extension.mdx) - [架构概览](spec/architecture.md) - [扩展协议规范](LINK_URL_5/>) - [会话格式](spec/session-format.md) - [路线图](spec/roadmap.md) ## 架构 ``` ┌─────────────────────────────────────────┐ │ ECOSYSTEM LAYER │ │ Packages · Themes · Skills · Prompts │ ├─────────────────────────────────────────┤ │ EXTENSION LAYER │ │ Tools · Providers · Renderers · Hooks │ │ (any language, wire protocol) │ ├─────────────────────────────────────────┤ │ CORE LAYER │ │ Agent Loop · Tool Interface · Sandbox │ │ Session Format · Event Bus │ │ (< 2,000 lines, no LLM, no UI) │ └─────────────────────────────────────────┘ ``` ## 项目状态 Dhara 正在积极开发中。第 0–3 阶段(规范、核心、标准库、CLI)已完成。当前工作重点在文档、扩展生态和发布准备。 详见 [spec/roadmap.md](spec/roadmap.md)。 ## 贡献 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 中的指南。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。规范文档采用 CC-BY-4.0 — 详见 [LICENSE-SPEC](LICENSE-SPEC.md)。 ❤️ 由 [Zosma AI](https://zosma.ai) 构建。
标签:Agent框架, GNU通用公共许可证, LLM, MITM代理, MIT许可, Node.js, npm, Unmanaged PE, 任务自动化, 协议标准, 国际化, 多语言, 威胁情报, 安全, 工具, 工具链, 开发者工具, 开源, 开源框架, 持续集成, 文档结构分析, 智能体协议, 标准化, 编码智能体, 编程助手, 网络调试, 自动化, 自动化攻击, 规范, 语言无关, 超时处理