You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Model & Auth | Pick from provider-specific model lists; OpenAI supports API key or browser OAuth login |
53
+
| Model & Auth | Pick from provider-specific model lists; OpenAI supports API key or browser OAuth login, plus optional Organization ID for enterprise accounts|
54
54
| Channels | Select Slack/Telegram with inline token collection |
55
55
| Tools | Select builtin tools; web_search shows Tavily vs Perplexity provider choice with API key input |
56
56
| Skills | Browse registry skills by category with inline required/optional env var collection |
The runner registers `AfterLLMCall` hooks that emit structured audit events for each LLM interaction. Audit fields include:
79
+
80
+
| Field | Description |
81
+
|-------|-------------|
82
+
|`provider`| LLM provider name |
83
+
|`model`| Model identifier |
84
+
|`input_tokens`| Prompt token count |
85
+
|`output_tokens`| Completion token count |
86
+
|`organization_id`| OpenAI Organization ID (when set) |
87
+
88
+
These events are logged via `slog` at Info level and can be consumed by external log aggregators for cost tracking and compliance.
89
+
76
90
## Progress Tracking
77
91
78
92
The runner automatically registers progress hooks that emit real-time status updates during tool execution. Progress events include the tool name, phase (`tool_start` / `tool_end`), and a human-readable status message. These events are streamed to clients via SSE when using the A2A HTTP server, enabling live progress indicators in web and chat UIs.
|`openai`|`gpt-5.2-2025-12-11`| API key or OAuth |
30
+
|`openai`|`gpt-5.2-2025-12-11`| API key or OAuth; optional Organization ID|
31
31
|`anthropic`|`claude-sonnet-4-20250514`| API key |
32
32
|`gemini`|`gemini-2.5-flash`| API key |
33
33
|`ollama`|`llama3`| None (local) |
@@ -67,6 +67,25 @@ forge init my-agent
67
67
68
68
OAuth tokens are stored in `~/.forge/credentials/openai.json` and automatically refreshed.
69
69
70
+
### Organization ID (OpenAI Enterprise)
71
+
72
+
Enterprise OpenAI accounts can set an Organization ID to route API requests to the correct org:
73
+
74
+
```yaml
75
+
model:
76
+
provider: openai
77
+
name: gpt-4o
78
+
organization_id: "org-xxxxxxxxxxxxxxxxxxxxxxxx"
79
+
```
80
+
81
+
Or via environment variable (overrides YAML):
82
+
83
+
```bash
84
+
export OPENAI_ORG_ID=org-xxxxxxxxxxxxxxxxxxxxxxxx
85
+
```
86
+
87
+
The `OpenAI-Organization` header is sent on all OpenAI API requests (chat, embeddings, responses). Fallback providers inherit the primary org ID unless overridden per-fallback. The org ID is also injected into skill subprocess environments as `OPENAI_ORG_ID`.
88
+
70
89
### Fallback Chains
71
90
72
91
Configure fallback providers for automatic failover when the primary provider is unavailable:
0 commit comments