ARTICLE DETAIL

资讯详情

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

IntentKit 配置指南:环境变量、AWS Secrets Manager 与部署参数全解析

IntentKit 配置指南:环境变量、AWS Secrets Manager 与部署参数全解析 IntentKit 配置指南环境变量、AWS Secrets Manager 与部署参数全解析【免费下载链接】intentkitIntentKit is an open-source, self-hosted cloud agent cluster that manages a collaborative team of AI agents for you.项目地址: https://gitcode.com/GitHub_Trending/int/intentkit本文围绕 IntentKit 的官方配置文档docs/content/en/advanced/configuration.md展开系统讲解 IntentKit 如何通过环境变量与 AWS Secrets Manager 完成运行配置从ENV、DB_*、OPENAI_API_KEY到CDP_*等核心参数的含义与取舍并深入源码验证其加载机制。读完本文你将能独立完成 IntentKit 在本地与生产环境下的全套配置。配置机制总览环境变量 AWS Secrets Manager 双通道IntentKit 的配置遵循一个统一原则所有配置项都可以通过环境变量.env文件或部署平台的环境注入提供也可以集中存放在 AWS Secrets Manager 中。官方文档给出的关键配置项如下配置项用途是否必填ENV运行环境标识local或其它值如prod否默认localDB_*PostgreSQL 数据库连接配置是OPENAI_API_KEYAgent 交互使用的 OpenAI API 密钥是CDP_*Coinbase Developer Platform 钱包配置否Web3 能力需要完整的可用配置项清单见仓库根目录的 .env.example它既是可复制的配置模板也是每个参数含义的权威注释来源。加载顺序与优先级从源码 intentkit/config/config.py 可以看到配置读取遵循明确的优先级进程启动时通过load_dotenv()读取.env文件config.py若设置了AWS_SECRET_NAME则从 AWS Secrets Manager 拉取 JSON 格式的密钥映射self.secrets每个具体配置项通过Config.load()解析AWS 密钥中的值优先于环境变量环境变量又优先于代码内置默认值config.py。load()方法还做了两处贴心的健壮性处理空字符串会被回退为默认值值外围成对的单引号/双引号会被自动剥离避免 Docker Composeenvironment:块或粘贴密钥时带入多余引号。此外字符串中的\n会被还原为真实换行便于通过环境变量注入多行系统提示词。环境标识与域名配置ENVlocal DEBUGtrue # 部署时必须填写本地开发可留空 APP_DOMAIN # Lets Encrypt 证书申请邮箱 TLS_EMAIL # Web UI 基础认证留空表示禁用 BASIC_AUTH_USER BASIC_AUTH_PASSWORD # 基础 URL AWS_S3_CDN_URLhttps://${APP_DOMAIN}/static APP_BASE_URLhttps://${APP_DOMAIN}ENV决定日志格式与部分环境相关行为源码中默认localconfig.pyAPP_BASE_URL前端应用的对外地址默认http://localhost:3000config.pyBASIC_AUTH_*为 Web UI 提供最简单的访问保护可选地WECHAT_BASE_URL可在推送到微信时替换APP_BASE_URL通常指向在微信内加载更快的 CDN 域名其余渠道与持久化记录仍使用APP_BASE_URL。PostgreSQL 数据库配置必需数据库是 IntentKit 的核心依赖官方文档明确标注为Required# 若使用 docker-compose 内的数据库全部留空即可 DB_HOST DB_PORT DB_USERNAME DB_PASSWORD DB_NAME DB_AUTO_MIGRATEtrue # 连接池大小非 .env.example 默认项源码默认 3 #DB_POOL_SIZE3从 intentkit/config/db.py 的实现可以看到数据库初始化的几个关键事实双连接池架构IntentKit 同时维护两条 PostgreSQL 连接链路——LangGraph Checkpoint 使用 psycopg3AsyncConnectionPoolAsyncPostgresSaver持久化对话检查点业务数据则通过 SQLAlchemy asyncpg 引擎访问。两者客户端库不兼容因此必须分别建池这是文档注释中明确指出的架构约束db.py自动迁移DB_AUTO_MIGRATEtrue默认开启会在启动时执行safe_migrate建表并自动将旧版 shallow 格式的 checkpoint 表迁移为 full 格式db.py健康检查连接池配置了SELECT 1预检、60 秒超时与 1 小时连接回收可优雅应对数据库重启与故障切换db.py。Redis 配置Redis 承担心跳、告警限流、消息通道等职责配置加载时若未设置REDIS_HOST会直接抛出RuntimeErrorintentkit/config/redis.py、config.pyREDIS_HOST127.0.0.1 #REDIS_PORT6379 #REDIS_DB0 #REDIS_PASSWORD #REDIS_SSLfalse连接成功后init_redis会执行ping()验证连通性心跳键以intentkit:heartbeat:name命名默认 TTL 为 16 分钟redis.py。LLM Provider 配置至少启用一个官方文档将OPENAI_API_KEY列为必需项但仓库实际上支持多家 LLM 服务商至少配置其中一个即可OPENROUTER_API_KEY OPENAI_API_KEY DEEPSEEK_API_KEY XAI_API_KEY GOOGLE_API_KEY GOOGLE_GENAI_USE_VERTEXAIfalse #GOOGLE_CLOUD_PROJECT MINIMAX_PLAN_API_KEY MIMO_PLAN_API_KEY # OpenAI 兼容协议服务商 OPENAI_COMPATIBLE_API_KEY OPENAI_COMPATIBLE_PROVIDER OPENAI_COMPATIBLE_BASE_URL OPENAI_COMPATIBLE_MODEL OPENAI_COMPATIBLE_MODEL_LITE # Anthropic 兼容协议服务商 ANTHROPIC_COMPATIBLE_API_KEY ANTHROPIC_COMPATIBLE_PROVIDER ANTHROPIC_COMPATIBLE_BASE_URL ANTHROPIC_COMPATIBLE_MODEL ANTHROPIC_COMPATIBLE_MODEL_LITEOPENAI_COMPATIBLE_*与ANTHROPIC_COMPATIBLE_*两组参数用于接入任何兼容对应协议的第三方网关_LITE后缀的模型用于轻量场景如标题生成、摘要。这些密钥全部通过Config.load()统一读取config.py。可选地SYSTEM_PROMPT与INTENTKIT_PROMPT可覆盖全局系统提示词。AWS S3 对象存储三种部署形态AWS_S3_BUCKET AWS_S3_ENDPOINT_URL AWS_S3_REGION_NAME AWS_S3_ACCESS_KEY_ID AWS_S3_SECRET_ACCESS_KEY AWS_S3_CDN_URLhttps://${APP_DOMAIN}/static按 .env.example 的说明S3 有三种配置形态部署在 AWS 上无需配置本段任何内容自动使用实例角色访问 S3使用第三方对象存储如 MinIO、Cloudflare R2、阿里云 OSS 等兼容 S3 的服务必须完整填写 Bucket、Endpoint、Region、AccessKey/SecretKey 五项使用 Docker Compose 内置的 rustfs只需对外暴露并配置AWS_S3_CDN_URL。Web3 能力配置可选IntentKit 内置大量链上工具官方文档提及的CDP_*系列即属于此范畴# Coinbase Server Wallet在 https://portal.cdp.coinbase.com 获取 CDP_API_KEY_ID CDP_API_KEY_SECRET CDP_WALLET_SECRET # Privy 钱包与登录 PRIVY_APP_ID PRIVY_APP_SECRET PRIVY_AUTHORIZATION_KEYS # Privy Safe 钱包 SAFE_API_KEY # Gas 赞助主钱包仅支付 Safe 部署与配置交易的 gas # 不控制已部署的 Safe。请生成全新 EOA 并在目标链上注入原生代币。 MASTER_WALLET_PRIVATE_KEY # RPC 服务商二选一 QUICKNODE_API_KEY INFURA_API_KEY从 config.py 的实现看RPC 提供商存在优先级配置了QUICKNODE_API_KEY则使用 Quicknode否则回退到INFURA_API_KEY随后通过init_chain_configs()初始化链配置。.env.example后半段还列出了ALLORA_API_KEY、MORALIS_API_KEY、DUNE_API_KEY、OPENSEA_API_KEY等二十余项 Web3 技能密钥可按需启用对应技能。预算控制与提示词通道配置# 可选每小时每位用户的最大基础 LLM 成本上限美元。 # 超出后用户会收到限流提示。留空则关闭。 #PAYMENT_ENABLEDfalse HOURLY_BUDGET # 各渠道系统提示词 WECHAT_SYSTEM_PROMPT TG_SYSTEM_PROMPT TG_NEW_AGENT_POLL_INTERVAL #XMTP_SYSTEM_PROMPTHOURLY_BUDGET以Decimal精度解析config.pyPAYMENT_ENABLED控制计费体系的启停。各渠道提示词可覆盖默认值——例如 XMTP 渠道的默认提示词会提示模型不要使用 Markdownconfig.py。追踪、告警与技能密钥可观测性LangSmith 与 Langfuse 二选一IntentKit 支持将每次 Agent 运行的全链路 trace提示词、模型回复、工具调用与结果、Token 用量、延迟与错误上报到外部可观测平台。详细说明见 docs/content/en/advanced/tracing.md# LangSmith #LANGSMITH_TRACINGtrue #LANGSMITH_API_KEY #LANGSMITH_PROJECTintentkit # 仅自托管或非默认区域时设置 #LANGSMITH_ENDPOINT # Langfuse两个 key 都设置即启用会禁用 LangSmith #LANGFUSE_PUBLIC_KEY #LANGFUSE_SECRET_KEY #LANGFUSE_BASE_URL两个后端互斥Langfuse 优先一旦其两个密钥都存在LangSmith 会被强制关闭都不配置则追踪关闭。源码中langsmith_tracing的计算显式带有and not self.langfuse_tracing条件config.py并会将规范化的LANGSMITH_*/LANGCHAIN_*变量回写环境防止部署环境残留变量干扰 SDK 读取。告警通道# Telegram 告警 #TG_ALERT_BOT_TOKEN #TG_ALERT_CHAT_ID # Slack 告警 SLACK_ALERT_TOKEN SLACK_ALERT_CHANNEL # Sentry 错误监控 #SENTRY_DSN统一告警系统按Telegram Slack None的优先级初始化config.py并为ERROR级别日志挂接告警处理器失败排查可实时推送到 IM。常用技能密钥# Cloudflare Browser Renderingread_webpage_cloudflare 技能 CLOUDFLARE_ACCOUNT_ID CLOUDFLARE_API_TOKEN # Z.AIweb_search 备用后端 ZAI_PLAN_API_KEY # 搜索类技能 TAVILY_API_KEY JINA_API_KEY FIRECRAWL_API_KEYTavily 与 Jina 是web_search的主后端GeminiGOOGLE_API_KEY与 Z.AIZAI_PLAN_API_KEY作为备用。从零配置一个可运行的 IntentKit综合以上内容最小的本地运行配置如下复制 .env.example 并填写ENVlocal DEBUGtrue # 使用 docker-compose 内置数据库则 DB_* 留空 OPENAI_API_KEYsk-... # 或任一 LLM 提供商的密钥 # 若未使用 docker-compose请指向自己的 PostgreSQL 与 Redis在仓库根目录执行docker compose up -d对应 docker-compose.yml拉起数据库、Redis 等依赖后应用启动时会在config.py的load_dotenv()阶段自动加载上述配置并完成数据库迁移。生产部署时将.env.example中的APP_DOMAIN、TLS_EMAIL等字段填入并将密钥整体迁移到 AWS Secrets Manager设置AWS_SECRET_NAME与AWS_DB_SECRET_NAME即可DB 密钥中host/username/password/dbname字段会被自动格式化见 config.py。配置加载成功后日志会输出config loaded一行至此 IntentKit 即按你的参数正常运转。【免费下载链接】intentkitIntentKit is an open-source, self-hosted cloud agent cluster that manages a collaborative team of AI agents for you.项目地址: https://gitcode.com/GitHub_Trending/int/intentkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表