JKToolKit.CodexSDK.AgentFramework
0.0.166
See the version list below for details.
dotnet add package JKToolKit.CodexSDK.AgentFramework --version 0.0.166
NuGet\Install-Package JKToolKit.CodexSDK.AgentFramework -Version 0.0.166
<PackageReference Include="JKToolKit.CodexSDK.AgentFramework" Version="0.0.166" />
<PackageVersion Include="JKToolKit.CodexSDK.AgentFramework" Version="0.0.166" />
<PackageReference Include="JKToolKit.CodexSDK.AgentFramework" />
paket add JKToolKit.CodexSDK.AgentFramework --version 0.0.166
#r "nuget: JKToolKit.CodexSDK.AgentFramework, 0.0.166"
#:package JKToolKit.CodexSDK.AgentFramework@0.0.166
#addin nuget:?package=JKToolKit.CodexSDK.AgentFramework&version=0.0.166
#tool nuget:?package=JKToolKit.CodexSDK.AgentFramework&version=0.0.166
Microsoft Agent Framework Adapter
JKToolKit.CodexSDK.AgentFramework adapts Microsoft Agent Framework function tools to Codex app-server dynamic tools.
This is useful when you already have Agent Framework tools represented as Microsoft.Extensions.AI.AIFunction instances and want Codex app-server to call them through its item/tool/call flow.
NuGet package: JKToolKit.CodexSDK.AgentFramework
Microsoft docs: Agent Framework and function tools.
Install
Install the adapter package into the project that owns your Agent Framework tools:
dotnet add package JKToolKit.CodexSDK.AgentFramework
The adapter package depends on JKToolKit.CodexSDK and Microsoft.Extensions.AI.Abstractions.
Usage
using JKToolKit.CodexSDK;
using JKToolKit.CodexSDK.AgentFramework;
using JKToolKit.CodexSDK.AppServer;
using JKToolKit.CodexSDK.Models;
using Microsoft.Extensions.AI;
AIFunction getWeather = AIFunctionFactory.Create(
(Func<string, string>)(location => $"Weather in {location}: cloudy."),
name: "get_weather",
description: "Gets the weather for a location.");
var agentFrameworkTools = AgentFrameworkCodexToolAdapter.Create([getWeather]);
await using var sdk = CodexSdk.Create(builder =>
{
builder.ConfigureAppServer(o =>
{
o.ExperimentalApi = true;
o.ApprovalHandler = agentFrameworkTools.ApprovalHandler;
});
});
await using var codex = await sdk.AppServer.StartAsync();
var thread = await codex.StartThreadAsync(new ThreadStartOptions
{
Cwd = Environment.CurrentDirectory,
Sandbox = CodexSandboxMode.ReadOnly,
ApprovalPolicy = CodexApprovalPolicy.Never,
DynamicTools = agentFrameworkTools.DynamicTools
});
await using var turn = await codex.StartTurnAsync(thread.Id, new TurnStartOptions
{
Input = [TurnInputItem.Text("Use the weather tool for Vienna.")]
});
Run the end-to-end pizza demo:
dotnet run --project src/JKToolKit.CodexSDK.Demo -- agent-framework-function-calling --repo "<repo-path>"
The demo inherits the default model from your Codex configuration. To force a model, pass --model <MODEL>, for example:
dotnet run --project src/JKToolKit.CodexSDK.Demo -- agent-framework-function-calling --model gpt-5.5
Notes
- Codex dynamic tools are currently behind the app-server experimental API capability, so set
CodexAppServerClientOptions.ExperimentalApi = true. - Tool names are the
AIFunction.Namevalues supplied by Agent Framework. - Unknown app-server server requests are delegated to the optional fallback handler passed to
AgentFrameworkCodexToolAdapter.Create. - Agent Framework agents can also be exposed to other tool callers with
AIAgent.AsAIFunction(...); pass thoseAIFunctioninstances to the adapter the same way.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- JKToolKit.CodexSDK (>= 0.0.166)
- Microsoft.Extensions.AI.Abstractions (>= 10.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.