{"id":"ad4ff2aa-ee95-4256-944d-ed2ddf25c9df","shortId":"YKwtn6","kind":"skill","title":"azure-ai-agents-persistent-dotnet","tagline":"Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools.","description":"# Azure.AI.Agents.Persistent (.NET)\n\nLow-level SDK for creating and managing persistent AI agents with threads, messages, runs, and tools.\n\n## Installation\n\n```bash\ndotnet add package Azure.AI.Agents.Persistent --prerelease\ndotnet add package Azure.Identity\n```\n\n**Current Versions**: Stable v1.1.0, Preview v1.2.0-beta.8\n\n## Environment Variables\n\n```bash\nPROJECT_ENDPOINT=https://<resource>.services.ai.azure.com/api/projects/<project>\nMODEL_DEPLOYMENT_NAME=gpt-4o-mini\nAZURE_BING_CONNECTION_ID=<bing-connection-resource-id>\nAZURE_AI_SEARCH_CONNECTION_ID=<search-connection-resource-id>\n```\n\n## Authentication\n\n```csharp\nusing Azure.AI.Agents.Persistent;\nusing Azure.Identity;\n\nvar projectEndpoint = Environment.GetEnvironmentVariable(\"PROJECT_ENDPOINT\");\nPersistentAgentsClient client = new(projectEndpoint, new DefaultAzureCredential());\n```\n\n## Client Hierarchy\n\n```\nPersistentAgentsClient\n├── Administration  → Agent CRUD operations\n├── Threads         → Thread management\n├── Messages        → Message operations\n├── Runs            → Run execution and streaming\n├── Files           → File upload/download\n└── VectorStores    → Vector store management\n```\n\n## Core Workflow\n\n### 1. Create Agent\n\n```csharp\nvar modelDeploymentName = Environment.GetEnvironmentVariable(\"MODEL_DEPLOYMENT_NAME\");\n\nPersistentAgent agent = await client.Administration.CreateAgentAsync(\n    model: modelDeploymentName,\n    name: \"Math Tutor\",\n    instructions: \"You are a personal math tutor. Write and run code to answer math questions.\",\n    tools: [new CodeInterpreterToolDefinition()]\n);\n```\n\n### 2. Create Thread and Message\n\n```csharp\n// Create thread\nPersistentAgentThread thread = await client.Threads.CreateThreadAsync();\n\n// Create message\nawait client.Messages.CreateMessageAsync(\n    thread.Id,\n    MessageRole.User,\n    \"I need to solve the equation `3x + 11 = 14`. Can you help me?\"\n);\n```\n\n### 3. Run Agent (Polling)\n\n```csharp\n// Create run\nThreadRun run = await client.Runs.CreateRunAsync(\n    thread.Id,\n    agent.Id,\n    additionalInstructions: \"Please address the user as Jane Doe.\"\n);\n\n// Poll for completion\ndo\n{\n    await Task.Delay(TimeSpan.FromMilliseconds(500));\n    run = await client.Runs.GetRunAsync(thread.Id, run.Id);\n}\nwhile (run.Status == RunStatus.Queued || run.Status == RunStatus.InProgress);\n\n// Retrieve messages\nawait foreach (PersistentThreadMessage message in client.Messages.GetMessagesAsync(\n    threadId: thread.Id, \n    order: ListSortOrder.Ascending))\n{\n    Console.Write($\"{message.Role}: \");\n    foreach (MessageContent content in message.ContentItems)\n    {\n        if (content is MessageTextContent textContent)\n            Console.WriteLine(textContent.Text);\n    }\n}\n```\n\n### 4. Streaming Response\n\n```csharp\nAsyncCollectionResult<StreamingUpdate> stream = client.Runs.CreateRunStreamingAsync(\n    thread.Id, \n    agent.Id\n);\n\nawait foreach (StreamingUpdate update in stream)\n{\n    if (update.UpdateKind == StreamingUpdateReason.RunCreated)\n    {\n        Console.WriteLine(\"--- Run started! ---\");\n    }\n    else if (update is MessageContentUpdate contentUpdate)\n    {\n        Console.Write(contentUpdate.Text);\n    }\n    else if (update.UpdateKind == StreamingUpdateReason.RunCompleted)\n    {\n        Console.WriteLine(\"\\n--- Run completed! ---\");\n    }\n}\n```\n\n### 5. Function Calling\n\n```csharp\n// Define function tool\nFunctionToolDefinition weatherTool = new(\n    name: \"getCurrentWeather\",\n    description: \"Gets the current weather at a location.\",\n    parameters: BinaryData.FromObjectAsJson(new\n    {\n        Type = \"object\",\n        Properties = new\n        {\n            Location = new { Type = \"string\", Description = \"City and state, e.g. San Francisco, CA\" },\n            Unit = new { Type = \"string\", Enum = new[] { \"c\", \"f\" } }\n        },\n        Required = new[] { \"location\" }\n    }, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase })\n);\n\n// Create agent with function\nPersistentAgent agent = await client.Administration.CreateAgentAsync(\n    model: modelDeploymentName,\n    name: \"Weather Bot\",\n    instructions: \"You are a weather bot.\",\n    tools: [weatherTool]\n);\n\n// Handle function calls during polling\ndo\n{\n    await Task.Delay(500);\n    run = await client.Runs.GetRunAsync(thread.Id, run.Id);\n\n    if (run.Status == RunStatus.RequiresAction \n        && run.RequiredAction is SubmitToolOutputsAction submitAction)\n    {\n        List<ToolOutput> outputs = [];\n        foreach (RequiredToolCall toolCall in submitAction.ToolCalls)\n        {\n            if (toolCall is RequiredFunctionToolCall funcCall)\n            {\n                // Execute function and get result\n                string result = ExecuteFunction(funcCall.Name, funcCall.Arguments);\n                outputs.Add(new ToolOutput(toolCall, result));\n            }\n        }\n        run = await client.Runs.SubmitToolOutputsToRunAsync(run, outputs, toolApprovals: null);\n    }\n}\nwhile (run.Status == RunStatus.Queued || run.Status == RunStatus.InProgress);\n```\n\n### 6. File Search with Vector Store\n\n```csharp\n// Upload file\nPersistentAgentFileInfo file = await client.Files.UploadFileAsync(\n    filePath: \"document.txt\",\n    purpose: PersistentAgentFilePurpose.Agents\n);\n\n// Create vector store\nPersistentAgentsVectorStore vectorStore = await client.VectorStores.CreateVectorStoreAsync(\n    fileIds: [file.Id],\n    name: \"my_vector_store\"\n);\n\n// Create file search resource\nFileSearchToolResource fileSearchResource = new();\nfileSearchResource.VectorStoreIds.Add(vectorStore.Id);\n\n// Create agent with file search\nPersistentAgent agent = await client.Administration.CreateAgentAsync(\n    model: modelDeploymentName,\n    name: \"Document Assistant\",\n    instructions: \"You help users find information in documents.\",\n    tools: [new FileSearchToolDefinition()],\n    toolResources: new ToolResources { FileSearch = fileSearchResource }\n);\n```\n\n### 7. Bing Grounding\n\n```csharp\nvar bingConnectionId = Environment.GetEnvironmentVariable(\"AZURE_BING_CONNECTION_ID\");\n\nBingGroundingToolDefinition bingTool = new(\n    new BingGroundingSearchToolParameters(\n        [new BingGroundingSearchConfiguration(bingConnectionId)]\n    )\n);\n\nPersistentAgent agent = await client.Administration.CreateAgentAsync(\n    model: modelDeploymentName,\n    name: \"Search Agent\",\n    instructions: \"Use Bing to answer questions about current events.\",\n    tools: [bingTool]\n);\n```\n\n### 8. Azure AI Search\n\n```csharp\nAzureAISearchToolResource searchResource = new(\n    connectionId: searchConnectionId,\n    indexName: \"my_index\",\n    topK: 5,\n    filter: \"category eq 'documentation'\",\n    queryType: AzureAISearchQueryType.Simple\n);\n\nPersistentAgent agent = await client.Administration.CreateAgentAsync(\n    model: modelDeploymentName,\n    name: \"Search Agent\",\n    instructions: \"Search the documentation index to answer questions.\",\n    tools: [new AzureAISearchToolDefinition()],\n    toolResources: new ToolResources { AzureAISearch = searchResource }\n);\n```\n\n### 9. Cleanup\n\n```csharp\nawait client.Threads.DeleteThreadAsync(thread.Id);\nawait client.Administration.DeleteAgentAsync(agent.Id);\nawait client.VectorStores.DeleteVectorStoreAsync(vectorStore.Id);\nawait client.Files.DeleteFileAsync(file.Id);\n```\n\n## Available Tools\n\n| Tool | Class | Purpose |\n|------|-------|---------|\n| Code Interpreter | `CodeInterpreterToolDefinition` | Execute Python code, generate visualizations |\n| File Search | `FileSearchToolDefinition` | Search uploaded files via vector stores |\n| Function Calling | `FunctionToolDefinition` | Call custom functions |\n| Bing Grounding | `BingGroundingToolDefinition` | Web search via Bing |\n| Azure AI Search | `AzureAISearchToolDefinition` | Search Azure AI Search indexes |\n| OpenAPI | `OpenApiToolDefinition` | Call external APIs via OpenAPI spec |\n| Azure Functions | `AzureFunctionToolDefinition` | Invoke Azure Functions |\n| MCP | `MCPToolDefinition` | Model Context Protocol tools |\n| SharePoint | `SharepointToolDefinition` | Access SharePoint content |\n| Microsoft Fabric | `MicrosoftFabricToolDefinition` | Access Fabric data |\n\n## Streaming Update Types\n\n| Update Type | Description |\n|-------------|-------------|\n| `StreamingUpdateReason.RunCreated` | Run started |\n| `StreamingUpdateReason.RunInProgress` | Run processing |\n| `StreamingUpdateReason.RunCompleted` | Run finished |\n| `StreamingUpdateReason.RunFailed` | Run errored |\n| `MessageContentUpdate` | Text content chunk |\n| `RunStepUpdate` | Step status change |\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `PersistentAgentsClient` | Main entry point |\n| `PersistentAgent` | Agent with model, instructions, tools |\n| `PersistentAgentThread` | Conversation thread |\n| `PersistentThreadMessage` | Message in thread |\n| `ThreadRun` | Execution of agent against thread |\n| `RunStatus` | Queued, InProgress, RequiresAction, Completed, Failed |\n| `ToolResources` | Combined tool resources |\n| `ToolOutput` | Function call response |\n\n## Best Practices\n\n1. **Always dispose clients** — Use `using` statements or explicit disposal\n2. **Poll with appropriate delays** — 500ms recommended between status checks\n3. **Clean up resources** — Delete threads and agents when done\n4. **Handle all run statuses** — Check for `RequiresAction`, `Failed`, `Cancelled`\n5. **Use streaming for real-time UX** — Better user experience than polling\n6. **Store IDs not objects** — Reference agents/threads by ID\n7. **Use async methods** — All operations should be async\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    var agent = await client.Administration.CreateAgentAsync(...);\n}\ncatch (RequestFailedException ex) when (ex.Status == 404)\n{\n    Console.WriteLine(\"Resource not found\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.AI.Agents.Persistent` | Low-level agents (this SDK) | `dotnet add package Azure.AI.Agents.Persistent` |\n| `Azure.AI.Projects` | High-level project client | `dotnet add package Azure.AI.Projects` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https://www.nuget.org/packages/Azure.AI.Agents.Persistent |\n| API Reference | https://learn.microsoft.com/dotnet/api/azure.ai.agents.persistent |\n| GitHub Source | https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/ai/Azure.AI.Agents.Persistent |\n| Samples | https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/ai/Azure.AI.Agents.Persistent/samples |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","agents","persistent","dotnet","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents"],"capabilities":["skill","source-sickn33","skill-azure-ai-agents-persistent-dotnet","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-ai-agents-persistent-dotnet","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34964 github stars · SKILL.md body (10,976 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-25T00:50:30.395Z","embedding":null,"createdAt":"2026-04-18T21:31:48.733Z","updatedAt":"2026-04-25T00:50:30.395Z","lastSeenAt":"2026-04-25T00:50:30.395Z","tsv":"'/api/projects/':73 '/azure/azure-sdk-for-net/tree/main/sdk/ai/azure.ai.agents.persistent':896 '/azure/azure-sdk-for-net/tree/main/sdk/ai/azure.ai.agents.persistent/samples':900 '/dotnet/api/azure.ai.agents.persistent':891 '/packages/azure.ai.agents.persistent':886 '1':134,753 '11':196 '14':197 '2':171,763 '3':202,773 '3x':195 '4':267,783 '404':839 '4o':79 '5':304,561,793 '500':230,387 '500ms':768 '6':439,806 '7':508,815 '8':547 '9':593 'access':674,680 'action':913 'add':52,57,865,875 'additionalinstruct':215 'address':217 'administr':110 'agent':4,9,23,42,111,136,145,204,359,363,479,484,528,535,569,576,719,734,780,831,861 'agent.id':214,275,601 'agents/threads':812 'ai':3,8,22,41,86,549,644,649 'alway':754 'answer':165,540,583 'api':656,887 'applic':907 'appropri':766 'ask':951 'assist':491 'async':817,823 'asynccollectionresult':271 'authent':90 'avail':608 'await':146,181,185,211,227,232,243,276,364,385,389,428,450,461,485,529,570,596,599,602,605,832 'azur':2,7,81,85,515,548,643,648,660,664,828 'azure-ai-agents-persistent-dotnet':1 'azure.ai.agents.persistent':30,54,93,857,867 'azure.ai.projects':868,877 'azure.identity':59,95 'azureaisearch':591 'azureaisearchquerytype.simple':567 'azureaisearchtooldefinit':587,646 'azureaisearchtoolresourc':552 'azurefunctiontooldefinit':662 'bash':50,68 'best':751 'better':801 'binarydata.fromobjectasjson':325 'bing':82,509,516,538,636,642 'bingconnectionid':513,526 'binggroundingsearchconfigur':525 'binggroundingsearchtoolparamet':523 'binggroundingtooldefinit':519,638 'bingtool':520,546 'bot':370,376 'boundari':959 'c':349 'ca':342 'call':306,381,631,633,654,749 'cancel':792 'catch':834,844 'categori':563 'chang':708 'check':772,788 'chunk':704 'citi':336 'clarif':953 'class':611 'clean':774 'cleanup':594 'clear':926 'client':102,107,756,873 'client.administration.createagentasync':147,365,486,530,571,833 'client.administration.deleteagentasync':600 'client.files.deletefileasync':606 'client.files.uploadfileasync':451 'client.messages.createmessageasync':186 'client.messages.getmessagesasync':248 'client.runs.createrunasync':212 'client.runs.createrunstreamingasync':273 'client.runs.getrunasync':233,390 'client.runs.submittooloutputstorunasync':429 'client.threads.createthreadasync':182 'client.threads.deletethreadasync':597 'client.vectorstores.createvectorstoreasync':462 'client.vectorstores.deletevectorstoreasync':603 'code':163,613,618 'codeinterpretertooldefinit':170,615 'combin':744 'complet':225,303,741 'connect':83,88,517 'connectionid':555 'console.write':253,294 'console.writeline':265,285,300,840,847 'content':257,261,676,703 'contentupd':293 'contentupdate.text':295 'context':669 'convers':725 'core':132 'creat':19,37,135,172,177,183,207,358,456,469,478 'criteria':962 'crud':112 'csharp':91,137,176,206,270,307,445,511,551,595,826 'current':60,319,543 'custom':634 'data':682 'defaultazurecredenti':106 'defin':308 'delay':767 'delet':777 'deploy':75,142 'describ':914,930 'descript':316,335,688 'dispos':755,762 'document':490,499,565,580 'document.txt':453 'doe':222 'done':782 'dotnet':6,51,56,864,874 'e.g':339 'els':288,296 'endpoint':70,100 'entri':716 'enum':347 'environ':66,942 'environment-specif':941 'environment.getenvironmentvariable':98,140,514 'eq':564 'equat':194 'error':700,824,848 'event':544 'ex':836,846 'ex.errorcode':850 'ex.message':851 'ex.status':838,849 'execut':122,412,616,732,909 'executefunct':419 'experi':803 'expert':947 'explicit':761 'extern':655 'f':350 'fabric':678,681 'fail':742,791 'file':125,126,440,447,449,470,481,621,626 'file.id':464,607 'fileid':463 'filepath':452 'filesearch':506 'filesearchresourc':474,507 'filesearchresource.vectorstoreids.add':476 'filesearchtooldefinit':502,623 'filesearchtoolresourc':473 'filter':562 'find':496 'finish':697 'foreach':244,255,277,402 'found':843 'francisco':341 'funccal':411 'funccall.arguments':421 'funccall.name':420 'function':305,309,361,380,413,630,635,661,665,748 'functiontooldefinit':311,632 'generat':619 'get':317,415 'getcurrentweath':315 'github':892 'github.com':895,899 'github.com/azure/azure-sdk-for-net/tree/main/sdk/ai/azure.ai.agents.persistent':894 'github.com/azure/azure-sdk-for-net/tree/main/sdk/ai/azure.ai.agents.persistent/samples':898 'gpt':78 'gpt-4o-mini':77 'ground':510,637 'handl':379,784,825 'help':200,494 'hierarchi':108 'high':870 'high-level':869 'id':84,89,518,808,814 'index':559,581,651 'indexnam':557 'inform':497 'inprogress':739 'input':956 'instal':49,856 'instruct':153,371,492,536,577,722 'interpret':614 'invok':663 'jane':221 'jsonnamingpolicy.camelcase':357 'jsonserializeropt':355 'key':709 'learn.microsoft.com':890 'learn.microsoft.com/dotnet/api/azure.ai.agents.persistent':889 'level':16,34,860,871 'limit':918 'link':879 'list':400 'listsortorder.ascending':252 'locat':323,331,353 'low':15,33,859 'low-level':14,32,858 'main':715 'manag':21,39,116,131 'match':927 'math':151,158,166 'mcp':666 'mcptooldefinit':667 'messag':26,45,117,118,175,184,242,246,728 'message.contentitems':259 'message.role':254 'messagecont':256 'messagecontentupd':292,701 'messagerole.user':188 'messagetextcont':263 'method':818 'microsoft':677 'microsoftfabrictooldefinit':679 'mini':80 'miss':964 'model':74,141,148,366,487,531,572,668,721 'modeldeploymentnam':139,149,367,488,532,573 'n':301 'name':76,143,150,314,368,465,489,533,574 'need':190 'net':13,31 'new':103,105,169,313,326,330,332,344,348,352,354,423,475,501,504,521,522,524,554,586,589 'nuget':882 'null':433 'object':328,810 'openapi':652,658 'openapitooldefinit':653 'oper':113,119,820 'order':251 'output':401,431,936 'outputs.add':422 'overview':917 'packag':53,58,866,876,883 'paramet':324 'permiss':957 'persist':5,10,40 'persistentag':144,362,483,527,568,718 'persistentagentfileinfo':448 'persistentagentfilepurpose.agents':455 'persistentagentscli':101,109,714 'persistentagentsvectorstor':459 'persistentagentthread':179,724 'persistentthreadmessag':245,727 'person':157 'pleas':216 'point':717 'poll':205,223,383,764,805 'practic':752 'prereleas':55 'preview':64 'process':694 'project':69,99,872 'projectendpoint':97,104 'properti':329 'propertynamingpolici':356 'protocol':670 'purpos':454,612,713,855 'python':617 'querytyp':566 'question':167,541,584 'queu':738 'real':798 'real-tim':797 'recommend':769 'refer':711,811,878,888 'relat':852 'requestfailedexcept':835,845 'requir':351,955 'requiredfunctiontoolcal':410 'requiredtoolcal':403 'requiresact':740,790 'resourc':472,746,776,841,880 'respons':269,750 'result':416,418,426 'retriev':241 'review':948 'run':27,46,120,121,162,203,208,210,231,286,302,388,427,430,690,693,696,699,786 'run.id':235,392 'run.requiredaction':396 'run.status':237,239,394,435,437 'runstatus':737 'runstatus.inprogress':240,438 'runstatus.queued':238,436 'runstatus.requiresaction':395 'runstepupd':705 'safeti':958 'sampl':897 'san':340 'scope':929 'sdk':11,17,35,854,863 'sdks':853 'search':87,441,471,482,534,550,575,578,622,624,640,645,647,650 'searchconnectionid':556 'searchresourc':553,592 'services.ai.azure.com':72 'services.ai.azure.com/api/projects/':71 'sharepoint':672,675 'sharepointtooldefinit':673 'skill':905,921 'skill-azure-ai-agents-persistent-dotnet' 'solv':192 'sourc':893 'source-sickn33' 'spec':659 'specif':943 'stabl':62 'start':287,691 'state':338 'statement':759 'status':707,771,787 'step':706 'stop':949 'store':130,444,458,468,629,807 'stream':124,268,272,281,683,795 'streamingupd':278 'streamingupdatereason.runcompleted':299,695 'streamingupdatereason.runcreated':284,689 'streamingupdatereason.runfailed':698 'streamingupdatereason.runinprogress':692 'string':334,346,417 'submitact':399 'submitaction.toolcalls':406 'submittooloutputsact':398 'substitut':939 'success':961 'task':925 'task.delay':228,386 'test':945 'text':702 'textcont':264 'textcontent.text':266 'thread':25,44,114,115,173,178,180,726,730,736,778 'thread.id':187,213,234,250,274,391,598 'threadid':249 'threadrun':209,731 'time':799 'timespan.frommilliseconds':229 'tool':29,48,168,310,377,500,545,585,609,610,671,723,745 'toolapprov':432 'toolcal':404,408,425 'tooloutput':424,747 'toolresourc':503,505,588,590,743 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'topk':560 'treat':934 'tri':829 'tutor':152,159 'type':327,333,345,685,687,710,712 'unit':343 'updat':279,290,684,686 'update.updatekind':283,298 'upload':446,625 'upload/download':127 'url':881 'use':92,94,537,757,758,794,816,827,903,919 'user':219,495,802 'ux':800 'v1.1.0':63 'v1.2.0-beta.8':65 'valid':944 'var':96,138,512,830 'variabl':67 'vector':129,443,457,467,628 'vectorstor':128,460 'vectorstore.id':477,604 'version':61 'via':627,641,657 'visual':620 'weather':320,369,375 'weathertool':312,378 'web':639 'workflow':133,911 'write':160 'www.nuget.org':885 'www.nuget.org/packages/azure.ai.agents.persistent':884","prices":[{"id":"37a25d0e-57d0-4957-850e-644b35afb76e","listingId":"ad4ff2aa-ee95-4256-944d-ed2ddf25c9df","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:31:48.733Z"}],"sources":[{"listingId":"ad4ff2aa-ee95-4256-944d-ed2ddf25c9df","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-ai-agents-persistent-dotnet","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-ai-agents-persistent-dotnet","isPrimary":false,"firstSeenAt":"2026-04-18T21:31:48.733Z","lastSeenAt":"2026-04-25T00:50:30.395Z"}],"details":{"listingId":"ad4ff2aa-ee95-4256-944d-ed2ddf25c9df","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-ai-agents-persistent-dotnet","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34964,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"7306b59aa8744c5e6e40d9868be128420647b5d4","skill_md_path":"skills/azure-ai-agents-persistent-dotnet/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-ai-agents-persistent-dotnet"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-ai-agents-persistent-dotnet","description":"Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-ai-agents-persistent-dotnet"},"updatedAt":"2026-04-25T00:50:30.395Z"}}