context
32
ctx:discord/blah/safiersemantics/32Source document
full textsafiersemantics-32
text/plain3 KB
doc:agent/safiersemantics-32/c4bb372b-33c3-4b96-bc4b-c5251be2aafa[2026-01-25 23:52] xenonfun: opus definately doing much better job of documenting notes on how things are done correctly: 2. **Pass tools at runtime as declaration-only** - Provides schema to LLM without auto-execution: ```csharp // SafierAgentAF.cs - AskAsync and AskStreamingAsync if (_tools.Count > 0) { var toolDeclarations = _tools .Select(t => t is AIFunction af ? af.AsDeclarationOnly() : t) .ToList(); runOptions.ChatOptions = new ChatOptions { Tools = toolDeclarations }; } ``` **Key Points**: - Agent created WITHOUT tools prevents `FunctionInvokingChatClient` middleware - Tools passed at runtime as `AIFunctionDeclaration` (schema-only, not invokable) - Framework passes `FunctionCallContent` back to our code instead of auto-executing - We handle execution manually with real-time UI callbacks - Idempotency checks still work as a safety net **Reference**: https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.ai.aifunction.asdeclarationonly [2026-01-26 00:06] xenonfun: ``` What's Working - WorkflowGrain state persistence via Orleans - Sequential and concurrent workflow execution patterns - Pause/resume/cancel workflow operations - Variable substitution in step inputs - SignalR event broadcasting for status updates - UI to browse and execute workflow templates ``` we shall see [2026-01-26 00:08] xenonfun: not exactly. (files: Screenshot_2026-01-25_at_7.07.42_PM.png) [2026-01-26 00:19] xenonfun: its. trying (files: Screenshot_2026-01-25_at_7.19.06_PM.png) [2026-01-26 00:46] traves_theberge: what C# frameworks have you found and are working with? [2026-01-26 01:32] xenonfun: https://youtu.be/K5fAdXjtwz4 [2026-01-26 01:33] xenonfun: This is pretty vanillia. [2026-01-26 01:33] xenonfun: (files: Screenshot_2026-01-25_at_8.33.35_PM.png) [2026-01-26 03:40] xenonfun: Now hopefully give this a reason to have this much overkill. Get multiuser support (files: Screenshot_2026-01-25_at_10.39.23_PM.png) [2026-01-26 03:58] xenonfun: rehydrating state and cleaner functionality, user login soon. (files: Screenshot_2026-01-25_at_10.57.43_PM.png) [2026-01-26 03:59] xenonfun: (files: Screenshot_2026-01-25_at_10.59.26_PM.png) [2026-01-26 04:02] xenonfun: (files: Screenshot_2026-01-25_at_11.02.37_PM.png) [2026-01-26 04:28] xenonfun: (files: Screenshot_2026-01-25_at_11.27.37_PM.png) [2026-01-26 06:09] xenonfun: few more tweaks, github login works already, but wanted one that wasn't really linked to anything as well. (files: Screen_Recording_2026-01-26_at_1.06.38_AM.mov) [2026-01-26 06:16] xenonfun: works (files: Screen_Recording_2026-01-26_at_1.16.05_AM.mov) [2026-01-26 07:17] xenonfun: (files: Screenshot_2026-01-26_at_2.16.59_AM.png) [2026-01-26 07:48] xenonfun: Usage tracking still needs some wiring, but service provider setup getting towards MVP. (files: Screenshot_2026-01-26_at_2.47.11_AM.png, Screenshot_2026-01-26_at_2.47.01_AM.png)
Facts in this context
Grouped by subject. Each subject links to its full article.
Log Entry 2026 01 25 23 5212 factsex:log-entry-2026-01-25-23-52
| assertsClaim | Opus Documentation Claim |
| containsCodeBlock | Csharp Code Block 1 |
| hasAuthor | Xenonfun |
| hasTimestamp | 2026-01-25 23:52 |
| listsKeyPoint | Key Point 6 |
| listsKeyPoint | Key Point 1 |
| listsKeyPoint | Key Point 2 |
| listsKeyPoint | Key Point 3 |
| listsKeyPoint | Key Point 4 |
| listsKeyPoint | Key Point 5 |
| providesReference | Microsoft.extensions.ai.aifunction.asdeclarationonly |
| rdf:type |