* dotnet: refresh Foundry sample guidance Carry forward the still-relevant sample guidance and Foundry-specific documentation fixes from the old stacked sample migration work, adapted to the current repo layout and policy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: rename Foundry sample env vars Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: remove persistent provider sample Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: drop SAMPLE_GUIDELINES.md from this PR Defer the guidelines doc and its cross-link to a follow-on PR to avoid broken-link failures in CI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: add DefaultAzureCredential warning to remaining samples Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: address PR review feedback Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
AgentWithCodeAct_Step02_ToolEnabled
Demonstrates adding provider-owned tools to HyperlightCodeActProvider. Those
tools are only available to code running inside the sandbox via
call_tool("<name>", ...) — they are never exposed to the model as direct
tools. This lets the model orchestrate multiple tool calls in a single Python
block.
One tool (send_email) is wrapped in ApprovalRequiredAIFunction, which causes
the entire execute_code invocation to require user approval when that tool
is configured.
Configuration
| Variable | Description |
|---|---|
AZURE_OPENAI_ENDPOINT |
Azure OpenAI endpoint. Required. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Azure OpenAI deployment. Defaults to gpt-5.4-mini. |
HYPERLIGHT_PYTHON_GUEST_PATH |
Absolute path to the Hyperlight Python guest module (.wasm or .aot file). Required. |
Run
cd AgentWithCodeAct_Step02_ToolEnabled
dotnet run
Planned follow-up
A more realistic "upload a file (e.g. an Excel workbook), have the agent
analyze it with code" sample is planned as a separate step that will use
HostInputDirectory together with a guest tool capable of reading the
uploaded file. It will be added in a follow-up PR once the corresponding
guest module support is in place.