Cấu hình
Bestie lưu non-secret settings trong .bestie/config.json. Secrets nằm trong .bestie/.env và không được in ra logs.
Config tối thiểu
Phần tiêu đề “Config tối thiểu”{ "version": 1, "agent": { "name": "Bestie", "ownerName": "Owner", "language": "vi", "toneIntensity": 7, "emojiLevel": "light" }, "llm": { "provider": "openai-compatible", "baseUrl": "https://api.openai.com/v1", "model": "provider-model-name", "apiKeyEnv": "BESTIE_LLM_API_KEY", "timeoutMs": 60000, "maxRetries": 1, "retryDelayMs": 500 }, "memory": { "provider": "sqlite", "writePolicy": "ask" }}BESTIE_LLM_API_KEY=...BESTIE_TELEGRAM_BOT_TOKEN=...Không lưu raw API keys trong config.json.
Memory policy
Phần tiêu đề “Memory policy”| Policy | Hành vi |
|---|---|
allow |
Lưu memory hợp lệ trực tiếp. |
ask |
Đưa memory vào hàng chờ duyệt. Mặc định. |
deny |
Từ chối memory writes. |
Workspace
Phần tiêu đề “Workspace”{ "workspace": { "defaultPath": ".bestie/workspace", "externalPaths": [] }}Relative write/edit/exec paths sẽ vào workspace mặc định. Dùng externalPaths cho absolute paths đáng tin bên ngoài project.
Telegram
Phần tiêu đề “Telegram”{ "channels": { "telegram": { "enabled": true, "botTokenEnv": "BESTIE_TELEGRAM_BOT_TOKEN", "ownerUserId": "123456789" } }}{ "mcp": { "servers": [ { "name": "local-files", "enabled": false, "transport": "stdio", "command": "node", "args": ["server.js"], "tools": [ { "name": "read_file", "category": "read" } ] } ] }}Tool MCP nên được classify trước khi gọi.