forked from rayclaw/rayclaw
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrayclaw.config.example.yaml
More file actions
115 lines (100 loc) · 5.24 KB
/
rayclaw.config.example.yaml
File metadata and controls
115 lines (100 loc) · 5.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# ──────────────────────────────────────────────────────
# RayClaw configuration
# Copy to rayclaw.config.yaml and fill in required values.
# Override path: RAYCLAW_CONFIG=/path/to/config.yaml
# ──────────────────────────────────────────────────────
# ── Telegram ────────────────────────────────────────
# Token from @BotFather
telegram_bot_token: ""
# Bot username (without @)
bot_username: ""
# ── LLM provider ───────────────────────────────────
# Supported: anthropic, openai, openai-codex, openrouter,
# ollama, deepseek, google, mistral, etc.
llm_provider: "anthropic"
# API key (not required for ollama; openai-codex supports OAuth)
api_key: ""
# Model name (empty = use provider default)
model: ""
# Custom base URL (leave unset to use provider default)
# llm_base_url: null
# ── Amazon Bedrock (native Converse API) ──────────
# Set llm_provider: "bedrock" to use the native Converse API.
# Credentials resolve in order: config fields → env vars → ~/.aws/credentials
# aws_region: "us-east-1"
# aws_access_key_id: ""
# aws_secret_access_key: ""
# aws_session_token: "" # optional, for temporary credentials
# aws_profile: "" # optional, profile name from ~/.aws/credentials
# Optional per-model token pricing for /usage cost display.
# USD per 1M tokens. Use "*" as catch-all fallback.
# model_prices:
# - model: "claude-sonnet-4-5-20250929"
# input_per_million_usd: 3.0
# output_per_million_usd: 15.0
# ── Limits ──────────────────────────────────────────
max_tokens: 8192 # max tokens per response
max_tool_iterations: 100 # max tool loop rounds per message
max_history_messages: 50 # chat history context window
max_document_size_mb: 100 # max inbound document size (MB)
memory_token_budget: 1500 # token budget for memory injection
# ── Embedding (optional, requires --features sqlite-vec) ──
# embedding_provider: "openai" # openai | ollama
# embedding_api_key: ""
# embedding_base_url: ""
# embedding_model: "text-embedding-3-small"
# embedding_dim: 1536
# ── Paths ───────────────────────────────────────────
# Runtime data goes to <data_dir>/runtime; skills to <data_dir>/skills
data_dir: "./rayclaw.data"
# Working directory for bash / file / search tools
working_dir: "./tmp"
# Isolation: "shared" (single dir) or "chat" (per chat_id subdirectory)
working_dir_isolation: "chat"
# IANA timezone for scheduling (e.g., "US/Eastern", "Asia/Shanghai")
timezone: "UTC"
# ── Voice transcription (optional) ──────────────────
# openai_api_key: ""
# ── Session management ──────────────────────────────
max_session_messages: 40 # trigger compaction above this
compact_keep_recent: 20 # messages to keep verbatim after compaction
# ── Permissions ─────────────────────────────────────
# Telegram groups allowed to use the bot (empty = allow all)
# allowed_groups: []
# Control chats can operate across all chats (global memory, cross-chat send, etc.)
# control_chat_ids: []
# Skip tool approval prompts (for isolated / sandboxed environments)
# skip_tool_approval: false # or set RAYCLAW_SKIP_TOOL_APPROVAL=true
# ── Discord (optional) ─────────────────────────────
# discord_bot_token: ""
# discord_allowed_channels: []
# ── Slack (optional, Socket Mode) ──────────────────
# channels:
# slack:
# bot_token: "xoxb-..."
# app_token: "xapp-..."
# allowed_channels: []
# ── Feishu / Lark (optional) ───────────────────────
# channels:
# feishu:
# app_id: "cli_xxx"
# app_secret: "xxx"
# connection_mode: "websocket" # websocket (default) | webhook
# domain: "feishu" # feishu | lark | custom URL
# allowed_chats: []
# ── Web UI ──────────────────────────────────────────
web_enabled: true
web_host: "127.0.0.1"
web_port: 10962
# Optional bearer token for API auth
# web_auth_token: ""
web_max_inflight_per_session: 2
web_max_requests_per_window: 8
web_rate_window_seconds: 10
web_run_history_limit: 512
web_session_idle_ttl_seconds: 300
# ── Personality ─────────────────────────────────────
# Markdown file defining the bot's voice, values, and working style.
# If unset, checks <data_dir>/SOUL.md then ./SOUL.md
# Per-chat override: <data_dir>/runtime/groups/<chat_id>/SOUL.md
# soul_path: "./SOUL.md"