Business Configuration
FinClaw business configuration is done via .env and the YAML files under deploy/config/. This page is grouped by business-side items (what the customer's ops/admin changes); for ops-side items (what the deployment engineer/SRE changes) see Operations Configuration; for the first-deploy minimum see Basic Configuration.
LLM and Multi-Model
Supported Provider List
Native providers (built-in default base URLs):
| provider key | Default base_url |
|---|---|
openai | https://api.openai.com/v1 |
deepseek | https://api.deepseek.com/v1 |
anthropic / claude | https://api.anthropic.com |
litellm | http://localhost:4000/v1 |
ollama | http://localhost:11434/v1 |
volcengine / doubao | https://ark.cn-beijing.volces.com/api/v3 |
kimi / moonshot | https://api.moonshot.cn/v1 |
qwen / dashscope / alibaba | https://dashscope.aliyuncs.com/compatible-mode/v1 |
minimax | https://api.minimax.io/v1 |
glm / zhipu / bigmodel | https://open.bigmodel.cn/api/paas/v4 |
openrouter | https://openrouter.ai/api/v1 |
OpenAI-compatible aliases: gemini, lmstudio (default http://localhost:1234/v1), custom (falls back to the OpenAI-compatible default); unknown providers fall back to the OpenAI-compatible protocol. mock is for testing only.
Multi-Model / Multi-Tenant
Model selection requires middleware, chatkit-web, and ai-infra-rs version alignment; the user model list API is GET /users/me/llm-models. In multi-tenant scenarios each tenant can configure models and quotas on the Admin -> Tenant -> Models page.
Channel Connectors
FinClaw provides three channel connectors:
| Service | Port | Credential source |
|---|---|---|
| feishu-connector | 26460 | Admin -> Tenant -> Channels page / .env fallback |
| wecom-connector | 26550 | Same as above |
| dingtalk-connector | 26462 | Same as above |
Credential Priority
- Admin -> Tenant -> Channels page configuration (persisted to identity-service, recommended)
.envfallback (initialization or testing only)
Channel binding URLs are configured only via the pages; do not use FEISHU_BIND_* / WECOM_BIND_* / DINGTALK_BIND_* env variables.
env Fallback Variables
| Variable | Service |
|---|---|
FEISHU_APP_ID / FEISHU_APP_SECRET / FEISHU_DOMAIN / FEISHU_ACCOUNTS | feishu-connector |
WECOM_BOT_ID / WECOM_SECRET / WECOM_CORP_ID / WECOM_WEBSOCKET_URL | wecom-connector |
DINGTALK_* | dingtalk-connector |
Warning: do not use
FEISHU_BIND_*/WECOM_BIND_*/DINGTALK_BIND_*env variables.INTERNAL_SERVICE_TOKENis only used by connectors to verify internal calls; it does not participate in channel authentication.
Channel External Network Addresses
| Channel | External domains |
|---|---|
| Feishu | open.feishu.cn, open.larksuite.com, attachment CDN |
| WeCom | qyapi.weixin.qq.com, *.work.weixin.qq.com, Tencent CDN |
| DingTalk | oapi.dingtalk.com, *.dingtalk.com |
Persona Templates
config/persona-templates/ provides multiple role templates:
finclaw-lobster,research-partner,wiki-agent,writing-partner, etc.- Each template contains definition files such as
SOUL.md/IDENTITY.md/AGENT.md persona-templates.jsonis the index file
Templates can be bound to specific tenants on the Admin -> Tenant -> Personas page; new templates require restarting persona-service to load.
Skill Service
config/skill-service.yaml configures the skill service; config/mcp-servers.yaml.example is the MCP server configuration template.
| Variable | Default | Description |
|---|---|---|
AI_INFRA_RS_SKILLS_ENABLED | true | Whether to enable the skill runtime |
AI_INFRA_RS_SKILLS_CUSTOM_DIRS | - | Custom skill directories (comma-separated) |
AI_INFRA_RS_SKILLS_USE_STANDARD_LOCATIONS | true | Whether to use standard skill directories |
AI_INFRA_RS_SKILLS_INCLUDE_WORKSPACE_SKILLS | true | Whether to include workspace skills |
The MCP server configuration path is specified via AI_INFRA_RS_MCP_SERVERS_CONFIG_PATH; it reads config/mcp-servers.yaml by default.
Administrator and Session
| Variable | Description |
|---|---|
ADMIN_EMAILS | Administrator emails (comma-separated); determines administrator privileges; restart required after change |
AUTH_MODE | Auth mode: mixed / local / oidc |
IDP_PUBLIC_KEY | IdP public key (required in OIDC mode) |
LOGINSERVER_URL | Login service URL |
APP_URL | Application URL (e.g. http://localhost:26100) |
OIDC_STATE_COOKIE_SECRET | OIDC state cookie secret |
SESSION_COOKIE_NAME / SESSION_COOKIE_SECRET | Session cookie name / secret |
SESSION_IDLE_TIMEOUT_DAYS | Session idle timeout (default 7) |
SESSION_ABSOLUTE_TIMEOUT_DAYS | Session absolute timeout (default 30) |
IFRAME_PARENT_ORIGINS | iframe parent origins (CSP frame-ancestors; required when embedding in an iframe) |
Storage and Upload
| Variable | Default | Description |
|---|---|---|
MAX_FILE_SIZE | 52428800 (50MiB) | Upload file size upper limit |
WORKSPACE_FILES_BASE_PATH | - | Workspace files base path (typically /app/data/workspaces inside the container) |
MEMORY_FILES_BASE_PATH | - | Memory files base path |
AI_INFRA_RS_MEMORY_FILES_BASE_PATH | - | claw-side memory files base path |
AI_INFRA_RS_MEMORY_SESSIONS_BASE_PATH | - | claw-side memory sessions base path |
AI_INFRA_RS_MEMORY_INDEX_PATH | - | SQLite index path (vector retrieval) |
AI_INFRA_RS_MEMORY_VECTOR_ENABLED | - | Whether to enable vector retrieval |
AI_INFRA_RS_AUDIT_PATH | - | Audit log path |
AG-UI
| Variable | Default | Description |
|---|---|---|
RUN_RESUME_ENABLED | true | Whether AG-UI resume is enabled (set 0 / false to disable) |
