ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Hive 配置指南:从全局默认值到 Agent 级覆盖的完整实战手册

Hive 配置指南:从全局默认值到 Agent 级覆盖的完整实战手册 人工智能AI Agent多智能体MCP 服务工具调用浏览器控制【免费下载链接】hiveMulti-Agent Harness for Production AI项目地址https://gitcode.com/gh_mirrors/hive48/hive点击查看免费下载导读Hive 是一个基于 Python 的多智能体生产级框架它的配置体系不依赖集中的config.yaml或 Docker Compose而是由「全局 JSON 配置 环境变量 Agent 级 config.py 项目级 .mcp.json」四层叠加而成。本文基于仓库 docs/configuration.md 展开结合 core/framework/config.py 等源码实现完整讲解 LLM Provider 切换、环境变量、Agent 级配置覆盖、MCP 服务注册、存储布局与故障排查读完即可独立完成 Hive 从安装到多 Provider 切换的整套配置。配置体系总览Hive 是 Python 编写的 Agent 框架配置通过环境变量和 Agent 级配置文件处理没有集中的config.yaml或 Docker Compose 编排。配置信息分布在以下五个层面~/.hive/configuration.json (全局默认值provider、model、max_tokens) Environment variables (API keys、运行时开关) Agent config.py (每个 Agent 的设置model、tools、storage) pyproject.toml (包元数据与依赖) .mcp.json (MCP 服务器连接)其中~/.hive/configuration.json由安装脚本quickstart.sh在首次初始化时创建保存所有 Agent 共享的默认 LLM Provider、模型与max_tokens每个 Agent 包内的config.py负责在全局默认值之上做局部覆盖API Key 等敏感信息一律走环境变量MCPModel Context Protocol服务器则在项目根目录的.mcp.json中声明。全局配置~/.hive/configuration.json文件结构与字段说明全局配置文件的典型内容如下{ llm: { provider: anthropic, model: claude-sonnet-4-5-20250929, max_tokens: 8192, api_key_env_var: ANTHROPIC_API_KEY }, created_at: 2026-01-15T12:00:0000:00 }字段含义说明llm.providerLLM 服务商标识如anthropic、openrouter、deepseek、hive等同时是凭据查找的索引键llm.model默认模型名各 Agent 未显式指定时使用llm.max_tokens单次生成的最大 token 数默认 8192即DEFAULT_MAX_TOKENSllm.api_key_env_var读取 API Key 的环境变量名如ANTHROPIC_API_KEYcreated_at配置文件创建时间由quickstart.sh写入默认值的源码位置文档与源码双重确认默认max_tokens值8192定义在 core/framework/orchestrator/edge.py 的DEFAULT_MAX_TOKENS 8192并通过 core/framework/orchestrator/init.py 对外导出。另外core/framework/config.py 中也定义了同名常量get_max_tokens()的解析顺序是配置文件显式值 → 模型目录model catalog中的模型上限 →DEFAULT_MAX_TOKENS兜底。每个 Agent 的RuntimeConfig在启动时读取该文件见下文源码深入因此修改全局默认值有两种方式重新运行quickstart.sh或直接编辑该文件。源码深入配置如何被消费Hive 将配置读取逻辑集中在 core/framework/config.py 中而不是让各 Agent 模板各自复制粘贴辅助函数。关键实现包括get_hive_config()读取~/.hive/configuration.json实际路径由HIVE_CONFIG_FILE HIVE_HOME / configuration.json定义文件不存在时返回空字典JSON 解析失败时记录警告并返回空字典保证配置损坏不影响进程启动。HIVE_HOME解析_resolve_hive_home()优先读取HIVE_HOME环境变量桌面版 Electron 壳会传入平台原生 userData 目录否则默认~/.hive。这意味着同一台机器上的桌面版与 CLI 版可互不共享状态。RuntimeConfig数据类聚合了model、temperature默认 0.7、max_tokens、max_context_tokens、api_key、api_base、extra_kwargs各字段通过default_factory懒加载上述配置函数——这正对应文档所说每个 Agent 的RuntimeConfig读取该文件。get_preferred_model()将provider/model拼接为anthropic/claude-sonnet-4-5-20250929这种 LiteLLM 风格完整模型串若配置缺失回退到anthropic/claude-sonnet-4-20250514。全局配置文件中的进阶配置段从 core/framework/config.py 的实现看configuration.json除了llm段还支持若干进阶配置文档未逐条展开此处结合源码补充worker_llm为 Worker 指定独立于 Queen 的模型、api_key_env_var、api_base以及use_claude_code_subscription/use_codex_subscription/use_kimi_code_subscription/use_antigravity_subscription等订阅式凭据开关未配置时回退到llm段默认值。vision_fallback为不支持图片输入的纯文本模型配置备用视觉模型provider/model/api_key_env_var/api_base用于工具结果图片的自动字幕化。llm.api_keys密钥池数组启用后KeyPool会在多个 Key 间轮转避免单 Key 限流。llm.extra_body透传给 LiteLLM/OpenAI SDK 的原始请求体例如 vLLM 的chat_template_kwargs用于关闭模型默认思考。retention数据保留 janitor 的窗口配置各字段还可用HIVE_RETENTION_字段大写环境变量覆盖环境变量优先于文件、文件优先于默认值。adaptive_tool_budget、email_senders、gcu_enabled、gcu_viewport_scale等开关分别控制自适应工具预算、邮件发送工具套件、GCU 浏览器自动化及其视口缩放。这些配置段证明configuration.json是一个可扩展的分层配置载体llm段只是最核心的默认值部分。环境变量配置LLM Provider真实执行至少需要一个# Anthropic主 Provider export ANTHROPIC_API_KEYsk-ant-... # OpenAI可选通过 LiteLLM 使用 GPT 系列模型 export OPENAI_API_KEYsk-... # OpenRouter可选托管模型 export OPENROUTER_API_KEY... # Hive LLM可选Hive 托管模型 export HIVE_API_KEY... # Cerebras可选用于输出清洗器与部分节点 export CEREBRAS_API_KEY... # Groq可选高速推理 export GROQ_API_KEY...框架通过 LiteLLM而密钥解析的完整优先级链在 core/framework/config.py 的get_api_key()中显式密钥池 → Claude Code / Codex / Kimi Code / Antigravity 订阅 token → 加密凭据库EncryptedFileStorage由HIVE_CREDENTIAL_KEY解锁→ 环境变量兜底。凭据库优先于环境变量是为了让桌面端刷新推送的 token 能对新起的RuntimeConfig实例立即生效。原生支持 Provider 示例DeepSeek、Mistral、Together AI、xAI、Perplexity{ llm: { provider: deepseek, model: deepseek-chat, max_tokens: 8192, api_key_env_var: DEEPSEEK_API_KEY } }注意事项将provider设为deepseek或mistral、together、xai、perplexitymodel使用标准模型名例如deepseek-chat这些原生支持的 Provider 无需配置api_base。OpenRouter 示例{ llm: { provider: openrouter, model: x-ai/grok-4.20-beta, max_tokens: 8192, api_key_env_var: OPENROUTER_API_KEY, api_base: https://openrouter.ai/api/v1 } }注意事项provider设为openroutermodel使用 OpenRouter 原始模型 ID例如x-ai/grok-4.20-betaapi_base应为https://openrouter.ai/api/v1源码中该常量定义于 core/framework/config.py 的OPENROUTER_API_BASE如果你粘贴的模型名已经以openrouter/开头Hive 会容忍并自动归一化见get_preferred_model()中对前缀的剥离逻辑。Hive LLM 示例{ llm: { provider: hive, model: queen, max_tokens: 32768, api_key_env_var: HIVE_API_KEY, api_base: https://api.adenhq.com } }注意事项provider设为hive常见 Hive 模型取值queen、kimi-k2.6、kimi-k2.5、GLM-5Hive LLM 请求使用 Hive 端点。从源码看core/framework/config.py 中HIVE_LLM_ENDPOINT https://llm.open-hive.com是当前生产代理端点LiteLLM 的 Anthropic 处理器会自动追加/v1/messages因此配置里只需基地址文档示例中的https://api.adenhq.com是仅为 Bearer 认证白名单保留的旧主机新部署建议指向llm.open-hive.com。搜索与工具可选# Agent 网络搜索Brave Search export BRAVE_SEARCH_API_KEY... # Exa Search备选网络搜索 export EXA_API_KEY...运行时标志# 无 LLM 调用运行 Agent仅做结构校验 export MOCK_MODE1 # 凭据库加密密钥~/.hive/credentials 的 Fernet 密钥 export HIVE_CREDENTIAL_KEYyour-fernet-key # 自定义 Agent 存储路径默认~/.hive/agents/{agent_name}/ export AGENT_STORAGE_PATH/custom/storage说明MOCK_MODE1对应框架中的 Mock Providercore/framework/llm/mock.py 中的MockLLMProvider适合在无 API Key 的环境下做流程与结构验证HIVE_CREDENTIAL_KEY解锁~/.hive/credentials/下的加密凭据加密后端为 core/framework/credentials/storage.py 的EncryptedFileStorage配合get_api_key()中凭据库优先的解析顺序可实现桌面端密钥热更新HIVE_HOME环境变量可整体重定向 Hive 的状态根目录默认~/.hive桌面版即通过它指向平台原生 userData 目录。Agent 级配置每个 Agent 的 config.py每个 Agent 包内包含自己的config.py# exports/my_agent/config.py CONFIG { model: anthropic/claude-sonnet-4-5-20250929, # 默认 LLM 模型 max_tokens: 8192, # 默认值framework.orchestrator 中的 DEFAULT_MAX_TOKENS temperature: 0.7, tools: [web_search, pdf_read], # 启用的 MCP 工具 storage_path: ~/.hive/agents/my_agent/, # 运行时数据位置默认 }如果model或max_tokens被省略Agent 会从~/.hive/configuration.json加载全局默认值——这正是前面所述RuntimeConfig的default_factory机制在起作用。模板实例竞争情报 Agent仓库 examples/templates/competitive_intel_agent/config.py 展示了更贴近实战的写法它直接继承框架的RuntimeConfig作为default_config再以AgentMetadata数据类声明name、version、description、intro_messageRuntime configuration for Competitive Intelligence Agent. from dataclasses import dataclass from framework.config import RuntimeConfig default_config: RuntimeConfig RuntimeConfig() dataclass class AgentMetadata: name: str Competitive Intelligence Agent version: str 1.0.0 description: str ( Monitors competitor websites, news sources, and GitHub repositories to deliver automated weekly digests with key insights and trend analysis for product and marketing teams. ) intro_message: str ( Hi! Im your competitive intelligence assistant. Tell me which competitors to monitor and what areas to focus on (pricing, features, hiring, partnerships, etc.) and Ill research them across websites, news, and GitHub to produce a detailed digest. ) metadata: AgentMetadata AgentMetadata()Queen框架内置的原生编码 Agent自身的配置在 core/framework/agents/queen/config.py 中同样从$HIVE_HOME/configuration.json的llm段加载首选模型未配置时回退到anthropic/claude-sonnet-4-20250514——两个入口对全局配置文件的消费方式完全一致。独立 Agent 规范legacy 导出格式适用范围下面的nodes/edgesagent.json格式是独立 / 导出型 Agent格式加载器仍然支持用于单一、可导出的 Agent。它不是线上 colony 运行时的运作方式——colony 没有图结构由 Queen 在运行时动态生长并通过共享的 tracker 协调 Worker。只有在编写可移植的独立 Agent 时才使用该格式。独立 Agent 通过agent.json定义{ id: my_agent, name: My Agent, goal: { success_criteria: [...], constraints: [...] }, nodes: [...], edges: [...] }仓库模板 examples/templates/competitive_intel_agent/agent.json 给出了完整的图式规格agent元数据、graphentry_node、terminal_nodes、nodes[]、edges[]、max_steps、max_retries_per_node、goalsuccess_criteria带权重、constraints带 hard/soft 类型、required_tools与metadata。其中edges[]的condition字段支持on_success、conditional如condition_expr: str(has_github_competitors).lower() true这类安全子集表达式等取值与 core/framework/orchestrator/edge.py 中的EdgeCondition枚举一一对应。构建 Agent 请参考 Getting Started Guide了解 colony 实际运行方式请阅读 Architecture Overview。MCP Server 配置项目根目录的 .mcp.jsonMCP 服务器在项目根目录的.mcp.json中配置{ mcpServers: { files-tools: { command: uv, args: [run, files_server.py, --stdio], cwd: tools }, tools: { command: uv, args: [run, mcp_server.py, --stdio], cwd: tools } } }两个服务器的作用与当前定位files-tools独立服务器tools/files_server.py暴露文件 I/O 工具read_file、write_file、edit_file、hashline_edit、search_files。它已不再为 Agent 自动注册——Queen/Worker 现在通过terminal-tools服务器做文件 I/O用terminal_exec执行 cat/sed/heredoc用terminal_rg/terminal_glob做搜索该服务器默认将 cwd 设为会话工作目录。toolstools/mcp_server.py暴露集成工具包括网络搜索、PDF 读取与 CSV 处理。仓库中另一个真实的 MCP 配置样例是 tools/mcp_servers.json它注册了名为hive_tools的 stdio 服务器uv run python mcp_server.py --stdio提供web_search、web_scrape、send_email与数据类工具并带description字段供 Agent 理解能力边界。若需更复杂的多服务器编排可参考 core/examples/mcp_servers.json 与 examples/templates/vulnerability_assessment/mcp_registry.json。存储基于文件的持久化Hive 使用基于文件的持久化无需外部数据库所有状态位于HIVE_HOME之下$HIVE_HOME/ agents/queens/queen_id/ # Queen 档案与会话 colonies/name/ # 每个 colony 一个自包含目录 worker.json # colony 的 worker克隆规格 data/tracker.db # colony 共享的 SQLite 账本 memories/ # 分作用域的 Queen 记忆global / colony / queen credentials/ # 加密凭据存储每个 colony 都自包含在其目录中因此可移植可整体导出/导入为 tarball。colony 的按会话对话与游标状态也持久化在 colony 目录下因此崩溃或重启后能精确恢复到原进度。存储模块位于 core/framework/storage/包含会话存储、对话存储、检查点存储与并发存储等实现如session_store.py、conversation_store.py、checkpoint_store.py、concurrent.py并配套了 migrate_v2.py、migrate_v3.py 等数据迁移脚本说明目录布局会随版本演进例如 tracker 数据库已从data/移入 colony 下的tracker/。凭据库独立存放于$HIVE_HOME/credentials/由 Fernet 加密HIVE_CREDENTIAL_KEY解锁无需任何外部数据库设置。IDE 配置VS Code在.vscode/settings.json中添加{ python.analysis.extraPaths: [ ${workspaceFolder}/core, ${workspaceFolder}/exports ] }PyCharm打开 Project Settings Project Structure将core标记为 Sources Root将exports标记为 Sources Root将core加入 Python 分析路径或标记为 Sources Root是消除No module named framework类报错的关键一步因为core是框架包framework的宿主目录。安全最佳实践绝不提交 API Key—— 使用环境变量或.env文件若使用本地.env文件务必保持私密—— 本仓库未提供根目录.env.example请使用自己的本地.env或 shell 环境变量存放密钥在非生产环境中使用真实 Provider Key 验证配置—— 在生产上线前用低风险输入校验配置凭据隔离—— 每个工具在运行时自行校验其凭据。框架层面对应的实现是 core/framework/credentials/ 凭据模块EncryptedFileStorage负责落盘加密各工具通过CredentialStore.with_encrypted_storage()按 Provider 取用并且get_api_key()的解析顺序保证环境变量只是兜底而非首选。故障排查ModuleNotFoundError: No module named framework安装 core 包cd core uv pip install -e .API key not found确保环境变量已在当前 shell 会话中设置echo $ANTHROPIC_API_KEY # 或 echo $OPENROUTER_API_KEY / echo $HIVE_API_KEYWindows PowerShell 下$env:ANTHROPIC_API_KEY sk-ant-... # 或 $env:OPENROUTER_API_KEY your-openrouter-key $env:HIVE_API_KEY your-hive-keyAgent not found从项目根目录携带 PYTHONPATH 运行PYTHONPATHexports uv run python -m my_agent validate详细的安装说明请参阅 Environment Setup。若需要进一步理解配置背后的运行时概念可延伸阅读 关键概念colony、Queen 以及 架构总览。赞分享人工智能AI Agent多智能体MCP 服务工具调用浏览器控制【免费下载链接】hiveMulti-Agent Harness for Production AI项目地址https://gitcode.com/gh_mirrors/hive48/hive点击查看免费下载相关推荐WinUtil 完整指南Windows 批量装软件、系统优化与更新管理WinUtil 完整指南Windows 批量装软件、系统优化与更新管理 WinUtil 是一款免费开源的 Windows 系统优化工具把装软件、调优化、修故桌面应用运维Semi Design ConfigProvider 全局配置与 semiGlobal 默认 Props 覆盖实战指南Semi Design ConfigProvider 全局配置与 semiGlobal 默认 Props 覆盖实战指南 ConfigProvider 是 Sem前端UI组件设计系统React Start 路由级错误边界Error Boundaries完全指南从全局默认配置到单路由覆盖React Start 路由级错误边界Error Boundaries完全指南从全局默认配置到单路由覆盖 在 React Start 全栈应用中渲染阶段前端路由SSR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表