-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadjutant.yaml.example
More file actions
135 lines (119 loc) · 5.07 KB
/
Copy pathadjutant.yaml.example
File metadata and controls
135 lines (119 loc) · 5.07 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# adjutant.yaml — Single source of truth for this Adjutant instance
#
# Copy this file to adjutant.yaml and fill in your values.
#
# This file is USER-SPECIFIC and should NOT be committed to version control.
# It is listed in .gitignore. Keep it local to your install.
#
# Secrets (tokens, chat IDs) stay in .env — this file contains non-secret config.
instance:
name: "adjutant"
identity:
soul: "identity/soul.md"
heart: "identity/heart.md"
registry: "identity/registry.md"
messaging:
backend: "telegram" # "telegram" or "none" (CLI-only mode)
telegram:
session_timeout_seconds: 7200 # 2h session window for conversational context
default_model: "cheap" # tier name or explicit model ID
rate_limit:
messages_per_minute: 10
backoff_exponential: true
llm:
backend: "opencode"
models:
# Named tiers — referenced by KB agents via kb.yaml model: cheap|medium|expensive
# Changing a tier here propagates to all KBs that use it. No per-KB edits needed.
# Multi-provider suite — see docs/reference/api-models.md for pricing & rationale
cheap: "opencode/kimi-k2.5" # retrieval, formatting, notifications, triage ($0.60/$3.00 per 1M)
medium: "opencode/gemini-3-pro" # reasoning, analysis, signal generation ($2.00/$12.00 per 1M)
expensive: "anthropic/claude-opus-4-6" # /reflect + /confirm only ($5.00/$25.00 per 1M)
reasoning_effort:
cheap: null # OpenCode only: passed as --variant when set
medium: null
expensive: null
caps:
session_tokens: 44000 # per-session token budget
session_window_hours: 5 # rolling window for session tracking
weekly_tokens: 350000 # weekly budget alert threshold
features:
news:
enabled: false # set to true and configure news_config.json
config_path: "news_config.json"
screenshot:
enabled: false
vision:
enabled: false
model: "cheap" # must be cheap|medium|expensive
search:
enabled: false # requires BRAVE_API_KEY in .env
usage_tracking:
enabled: false
heartbeat:
enabled: false # enables the pulse→escalation→review pipeline; then enable schedule entries below
# Scheduled jobs — managed by `adjutant schedule` commands.
# Each entry is installed as a crontab line: <schedule> <script> >> <log> 2>&1
# script: relative to ADJ_DIR, or absolute path. Must be executable.
# log: relative to ADJ_DIR, or absolute path. Created if missing.
# enabled: true installs the crontab entry; false keeps the registry entry but removes it from crontab.
#
# Add a new job interactively: adjutant schedule add
# Manage jobs: adjutant schedule list | enable | disable | remove | run
schedules:
- name: "news_briefing"
description: "Daily AI news digest"
schedule: "0 8 * * 1-5"
script: ".venv/bin/python -m adjutant news"
log: "state/news_briefing.log"
enabled: false # set to true when features.news.enabled is true
- name: "autonomous_pulse"
description: "Scheduled autonomous pulse check across knowledge bases"
schedule: "0 9,17 * * 1-5"
script: ".venv/bin/python -m adjutant pulse"
log: "state/pulse.log"
enabled: false # set to true when heartbeat.enabled is true
- name: "autonomous_review"
description: "End-of-day synthesis and review"
schedule: "0 20 * * 1-5"
script: ".venv/bin/python -m adjutant review"
log: "state/review.log"
enabled: false # set to true when heartbeat.enabled is true
- name: "memory_digest"
description: "Weekly memory compression from journal entries"
schedule: "0 21 * * 0"
script: ".venv/bin/python -m adjutant memory digest"
log: "state/memory_digest.log"
enabled: false # compresses journal into memory/summaries/weekly/
# KB job example — use kb_name + kb_operation instead of a hardcoded script path.
# Adjutant resolves the operation via cli_module in kb.yaml, or falls back to scripts/<op>.sh.
# - name: "portfolio_fetch"
# description: "Fetch portfolio positions and prices"
# schedule: "0 9,16 * * 1-5"
# kb_name: "portfolio-kb"
# kb_operation: "fetch"
# log: "/absolute/path/to/portfolio-kb/state/fetch.log"
# enabled: false
platform:
service_manager: "launchd" # launchd (macOS) | systemd (Linux) | manual
process_manager: "pidfile"
notifications:
max_per_day: 3
quiet_hours:
enabled: false
start: "22:00"
end: "07:00"
security:
prompt_injection_guard: true
env_file: ".env"
log_unknown_senders: true
rate_limiting: true
journal:
retention_days: 30 # archive main journal entries older than this
news_retention_days: 14 # archive news briefings older than this
log_max_size_kb: 5120 # rotate adjutant.log when it exceeds 5MB
log_rotations: 3 # number of compressed log backups to keep
debug:
dry_run: false
verbose_logging: false
mock_llm: false