From 1e9d7ac81e2136c68d4b9260b1cf57ed078e28f1 Mon Sep 17 00:00:00 2001 From: siyoon Date: Sat, 1 Aug 2026 14:49:52 +0900 Subject: [PATCH 1/3] feat: add Friendli provider reasoning support --- README.md | 1 + internal/agent/coordinator.go | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index 9e42a419d4..177789fe57 100644 --- a/README.md +++ b/README.md @@ -211,6 +211,7 @@ That said, you can also set environment variables for preferred providers: | `SYNTHETIC_API_KEY` | Synthetic | | `HF_TOKEN` | Hugging Face Inference | | `CEREBRAS_API_KEY` | Cerebras | +| `FRIENDLI_API_KEY` | Friendli | | `OPENROUTER_API_KEY` | OpenRouter | | `IONET_API_KEY` | io.net | | `ALIBABA_SINGAPORE_API_KEY` | Alibaba (Singapore) | diff --git a/internal/agent/coordinator.go b/internal/agent/coordinator.go index f49c810314..9f9258e0b8 100644 --- a/internal/agent/coordinator.go +++ b/internal/agent/coordinator.go @@ -577,6 +577,13 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy. if model.CatwalkCfg.CanReason { extraBody["enable_thinking"] = model.ModelCfg.Think || reasoningEffort != "" } + + case "friendli": + extraBody["parse_reasoning"] = true + extraBody["include_reasoning"] = true + extraBody["chat_template_kwargs"] = map[string]any{ + "enable_thinking": model.ModelCfg.Think || reasoningEffort != "" && reasoningEffort != "none", + } } mergedOptions["extra_body"] = extraBody From fc16593929837699958eb1be826f73fef20bfb12 Mon Sep 17 00:00:00 2001 From: Lee-Si-Yoon Date: Sat, 1 Aug 2026 14:57:24 +0900 Subject: [PATCH 2/3] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 177789fe57..bc7fca2078 100644 --- a/README.md +++ b/README.md @@ -211,7 +211,7 @@ That said, you can also set environment variables for preferred providers: | `SYNTHETIC_API_KEY` | Synthetic | | `HF_TOKEN` | Hugging Face Inference | | `CEREBRAS_API_KEY` | Cerebras | -| `FRIENDLI_API_KEY` | Friendli | +| `FRIENDLI_API_KEY` | FriendliAI | | `OPENROUTER_API_KEY` | OpenRouter | | `IONET_API_KEY` | io.net | | `ALIBABA_SINGAPORE_API_KEY` | Alibaba (Singapore) | From 6a60f7ffc6414f22a82a44886ccfb065b745251c Mon Sep 17 00:00:00 2001 From: siyoon Date: Sat, 1 Aug 2026 14:49:52 +0900 Subject: [PATCH 3/3] feat: add Friendli provider reasoning support --- README.md | 2 +- internal/agent/coordinator.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bc7fca2078..177789fe57 100644 --- a/README.md +++ b/README.md @@ -211,7 +211,7 @@ That said, you can also set environment variables for preferred providers: | `SYNTHETIC_API_KEY` | Synthetic | | `HF_TOKEN` | Hugging Face Inference | | `CEREBRAS_API_KEY` | Cerebras | -| `FRIENDLI_API_KEY` | FriendliAI | +| `FRIENDLI_API_KEY` | Friendli | | `OPENROUTER_API_KEY` | OpenRouter | | `IONET_API_KEY` | io.net | | `ALIBABA_SINGAPORE_API_KEY` | Alibaba (Singapore) | diff --git a/internal/agent/coordinator.go b/internal/agent/coordinator.go index 9f9258e0b8..b046e06acd 100644 --- a/internal/agent/coordinator.go +++ b/internal/agent/coordinator.go @@ -517,6 +517,9 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy. if !strings.HasPrefix(strings.ToLower(model.CatwalkCfg.ID), "minimax") { mergedOptions["reasoning_effort"] = reasoningEffort } + case "friendli": + // Friendli does not accept reasoning_effort; it uses + // chat_template_kwargs.enable_thinking instead. default: mergedOptions["reasoning_effort"] = reasoningEffort }