pip install "praisonai[serve]"export OPENAI_API_KEY="your-key"# Start unified server — mounts agents-api + a2a from agents.yaml, plus a2upraisonai serve unified --file agents.yaml --port 8765
Expected Output:
✓ Starting unified server on 127.0.0.1:8765 Providers: agents-api, a2a, a2u Discovery: /__praisonai__/discovery
The server only advertises providers it actually mounts. agents-api and a2a run the workflow in --file, so they are mounted only when that file exists:
Define the agents the unified server runs in agents.yaml:
framework: praisonaitopic: "Answer user questions"roles: assistant: role: Helpful AI Assistant goal: Help users with their questions backstory: You are a friendly assistant. tasks: answer: description: "Answer: {topic}" expected_output: A clear answer
curl -X POST http://localhost:8765/agents \ -H "Content-Type: application/json" \ -d '{"query": "What is PraisonAI?"}'
Response:
{"response": "PraisonAI is ..."}
POST /agents accepts query (or message). A body that is not a JSON object returns 400; an agent failure returns 500.
praisonai serve unified mounts agent-driving routes (POST /agents, POST /a2a), so binding it to a non-localhost interface without authentication is refused.
Binding to any host other than 127.0.0.1 / localhost / ::1requires an API key. The server exits immediately (SystemExit) if neither --api-key nor PRAISONAI_SERVE_API_KEY is set.
Use the unified endpoints CLI to interact with any provider:
# List all endpointspraisonai endpoints list --url http://localhost:8765# Filter by provider typepraisonai endpoints list --url http://localhost:8765 --type agents-api# Get discovery documentpraisonai endpoints discovery --url http://localhost:8765# Health checkpraisonai endpoints health --url http://localhost:8765
API key. Required when --host is not 127.0.0.1 / localhost / ::1. Can also be set via PRAISONAI_SERVE_API_KEY. Enforces Authorization: Bearer / X-API-Key on every route except /health, /, /.well-known/agent.json.
--file
agents.yaml
Agents YAML file. agents-api and a2a are mounted only when it exists
API key required to bind praisonai serve unified on a non-localhost host. The server exits with SystemExit if this is unset and no --api-key is passed when --host is not localhost. Also drives the _api_auth middleware when the server is running.
Tools MCP Server - MCP is served by its own command, not serve unified
Serve CLI: recipe - Recipes are served by praisonai serve recipe, not serve unified
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"PraisonAI","colors":{"primary":"#329100","light":"#43C200","dark":"#329100"},"logo":{"light":"https://mintcdn.com/praisonai/pFBcVNzCyPC2mUmz/images/praisonai-logo-large-dark.png?fit=max\u0026auto=format\u0026n=pFBcVNzCyPC2mUmz\u0026q=85\u0026s=7ea3eeea94c5f762e7193a32e819987d","dark":"https://mintcdn.com/praisonai/pFBcVNzCyPC2mUmz/images/praisonai-logo-large-light.png?fit=max\u0026auto=format\u0026n=pFBcVNzCyPC2mUmz\u0026q=85\u0026s=2c1d5e4352beb04bea60def76f469dde","href":"/"},"favicon":"https://mintcdn.com/praisonai/pFBcVNzCyPC2mUmz/images/praisonai-android-chrome-192x192.png?fit=max\u0026auto=format\u0026n=pFBcVNzCyPC2mUmz\u0026q=85\u0026s=8d39028bf9c745cbec53c04731f925a7","api":{"playground":{"display":"simple"},"mdx":{"auth":{"method":"key","name":"X-API-Key"},"server":"http://127.0.0.1:8765"}},"background":{"color":{"light":"#ffffff","dark":"#0a0d0b"}},"navbar":{"links":[{"href":"https://github.com/MervinPraison/PraisonAI/issues","label":"Submit Issues"}],"primary":{"type":"github","href":"https://github.com/MervinPraison/PraisonAI"}},"footer":{"socials":{"github":"https://github.com/MervinPraison/PraisonAI","x":"https://x.com/MervinPraison","youtube":"https://youtube.com/@MervinPraison"},"links":[{"header":"Resources","items":[{"label":"GitHub","href":"https://github.com/MervinPraison/PraisonAI"},{"label":"Documentation","href":"https://praison.ai/docs"}]},{"header":"Submit Issues","items":[{"label":"GitHub Issues","href":"https://github.com/MervinPraison/PraisonAI/issues"},{"label":"Twitter","href":"https://x.com/MervinPraison"}]}]},"seo":{"metatags":{"canonical":"https://praison.ai/docs","og:site_name":"PraisonAI","og:locale":"en_GB","twitter:card":"summary_large_image","twitter:site":"@praisonai"},"indexing":"navigable"},"icons":{"library":"fontawesome"},"styling":{"codeblocks":{"theme":{"light":"vitesse-light","dark":"vitesse-dark"}},"latex":true},"integrations":{"gtm":{"tagId":"GTM-PG3884Z9"}},"contextual":{"options":["copy","mcp","cursor","chatgpt","claude"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"praisonai","hasAudioNarration":false,"actualSubdomain":"praisonai","customDomains":["praison.ai"],"gitSource":{"type":"github","owner":"mervinpraison","repo":"praisonaidocs","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6aed08a8db906af8a6bdf650","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"SDK","count":5423},{"language":"default","tag":"Reference","count":5318},{"language":"default","tag":"Functions","count":3714},{"language":"default","tag":"praisonaiagents","count":2557},{"language":"default","tag":"rust","count":2087},{"language":"default","tag":"Classes","count":1294},{"language":"default","tag":"Getting Started","count":1280},{"language":"default","tag":"Features","count":989},{"language":"default","tag":"typescript","count":451},{"language":"default","tag":"CLI","count":401}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"overrides/css/custom.css","content":"#content-area{max-width:56rem!important}[role=\"tablist\"]{justify-content:center!important}"}],"page":{"pagePath":"deploy/servers/unified","slug":"/deploy/servers/unified","pageMetadata":{"title":"Server: Unified","sidebarTitle":"Unified","description":"Deploy a unified server that combines the agents API, A2A and A2U providers","icon":"layer-group","href":"/deploy/servers/unified"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Deploy a unified server that combines the agents API, A2A and A2U providers\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Mermaid,Note,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Deploy a unified server that combines the agents API, A2A and A2U providers in a single endpoint.`}),`\n`,_jsx(Heading,{level:`2`,id:`cli`,children:`CLI`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`pip`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` install`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`praisonai[serve]`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#AB5959`,\"--shiki-dark\":`#CB7676`},children:`export`}),_jsx(_components.span,{style:{color:`#B07D48`,\"--shiki-dark\":`#BD976A`},children:` OPENAI_API_KEY`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`=`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`your-key`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A0ADA0`,\"--shiki-dark\":`#758575DD`},children:`# Start unified server — mounts agents-api + a2a from agents.yaml, plus a2u`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`praisonai`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` serve`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` unified`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --file`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` agents.yaml`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --port`}),_jsx(_components.span,{style:{color:`#2F798A`,\"--shiki-dark\":`#4C9A91`},children:` 8765`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Expected Output:`})}),`\n`,_jsx(CodeBlock,{numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`✓ Starting unified server on 127.0.0.1:8765`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` Providers: agents-api, a2a, a2u`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` Discovery: /__praisonai__/discovery`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`The server only advertises providers it actually mounts. `,_jsx(_components.code,{children:`agents-api`}),` and `,_jsx(_components.code,{children:`a2a`}),` run the workflow in `,_jsx(_components.code,{children:`--file`}),`, so they are mounted only when that file exists:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`--file`})}),_jsx(_components.th,{children:`Providers`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Exists`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`agents-api`}),`, `,_jsx(_components.code,{children:`a2a`}),`, `,_jsx(_components.code,{children:`a2u`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Missing`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`a2u`})})]})]})]}),`\n`,_jsx(Mermaid,{chart:`graph TB\n Start[praisonai serve unified] --> File{--file exists?}\n File -->|Yes| Full[agents-api + a2a + a2u]\n File -->|No| A2U[a2u only]\n\n classDef decision fill:#F59E0B,stroke:#7C90A0,color:#fff\n classDef ok fill:#10B981,stroke:#7C90A0,color:#fff\n classDef info fill:#189AB4,stroke:#7C90A0,color:#fff\n\n class File decision\n class Full ok\n class A2U info`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`recipe`}),` and `,_jsx(_components.code,{children:`mcp`}),` are not part of the unified server. Run them with their own commands: `,_jsx(_components.a,{href:`/cli/serve`,children:_jsx(_components.code,{children:`praisonai serve recipe`})}),` and `,_jsx(_components.a,{href:`/deploy/servers/tools-mcp`,children:_jsx(_components.code,{children:`praisonai mcp serve`})}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`agent`,children:`Agent`}),`\n`,_jsxs(_components.p,{children:[`Define the agents the unified server runs in `,_jsx(_components.code,{children:`agents.yaml`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`framework`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` praisonai`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`topic`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`Answer user questions`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`roles`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:` assistant`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:` role`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` Helpful AI Assistant`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:` goal`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` Help users with their questions`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:` backstory`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` You are a friendly assistant.`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:` tasks`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:` answer`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:` description`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`Answer: {topic}`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:` expected_output`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` A clear answer`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`curl`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` -X`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` POST`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` http://localhost:8765/agents`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` -H`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`Content-Type: application/json`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` -d`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` '`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`{\"query\": \"What is PraisonAI?\"}`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`'`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Response:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`{`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`response`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`PraisonAI is ...`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`}`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`POST /agents`}),` accepts `,_jsx(_components.code,{children:`query`}),` (or `,_jsx(_components.code,{children:`message`}),`). A body that is not a JSON object returns `,_jsx(_components.code,{children:`400`}),`; an agent failure returns `,_jsx(_components.code,{children:`500`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`security`,children:`Security`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`praisonai serve unified`}),` mounts agent-driving routes (`,_jsx(_components.code,{children:`POST /agents`}),`, `,_jsx(_components.code,{children:`POST /a2a`}),`), so binding it to a non-localhost interface without authentication is refused.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Binding to any host other than `,_jsx(_components.code,{children:`127.0.0.1`}),` / `,_jsx(_components.code,{children:`localhost`}),` / `,_jsx(_components.code,{children:`::1`}),` `,_jsx(_components.strong,{children:`requires`}),` an API key. The server exits immediately (`,_jsx(_components.code,{children:`SystemExit`}),`) if neither `,_jsx(_components.code,{children:`--api-key`}),` nor `,_jsx(_components.code,{children:`PRAISONAI_SERVE_API_KEY`}),` is set.`]})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A0ADA0`,\"--shiki-dark\":`#758575DD`},children:`# Localhost — no key required`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`praisonai`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` serve`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` unified`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --port`}),_jsx(_components.span,{style:{color:`#2F798A`,\"--shiki-dark\":`#4C9A91`},children:` 8765`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A0ADA0`,\"--shiki-dark\":`#758575DD`},children:`# Remote — key required (via env var)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#AB5959`,\"--shiki-dark\":`#CB7676`},children:`export`}),_jsx(_components.span,{style:{color:`#B07D48`,\"--shiki-dark\":`#BD976A`},children:` PRAISONAI_SERVE_API_KEY`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`=`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`your-secret`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`praisonai`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` serve`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` unified`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --port`}),_jsx(_components.span,{style:{color:`#2F798A`,\"--shiki-dark\":`#4C9A91`},children:` 8765`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --host`}),_jsx(_components.span,{style:{color:`#2F798A`,\"--shiki-dark\":`#4C9A91`},children:` 0.0.0.0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A0ADA0`,\"--shiki-dark\":`#758575DD`},children:`# Or via flag`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`praisonai`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` serve`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` unified`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --port`}),_jsx(_components.span,{style:{color:`#2F798A`,\"--shiki-dark\":`#4C9A91`},children:` 8765`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --host`}),_jsx(_components.span,{style:{color:`#2F798A`,\"--shiki-dark\":`#4C9A91`},children:` 0.0.0.0`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --api-key`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`your-secret`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Clients send the key in `,_jsx(_components.code,{children:`Authorization: Bearer …`}),` or `,_jsx(_components.code,{children:`X-API-Key: …`}),`. Only `,_jsx(_components.code,{children:`/health`}),`, `,_jsx(_components.code,{children:`/`}),` and `,_jsx(_components.code,{children:`/.well-known/agent.json`}),` are public.`]}),`\n`,_jsx(Mermaid,{chart:`graph TB\n Start[praisonai serve unified] --> Host{Host is\u003cbr/>localhost?}\n Host -->|Yes| Run[Start — no key needed]\n Host -->|No| Key{--api-key or\u003cbr/>PRAISONAI_SERVE_API_KEY?}\n Key -->|Set| Auth[Start — Bearer / X-API-Key enforced]\n Key -->|Missing| Exit[SystemExit — refuse to bind]\n\n classDef decision fill:#F59E0B,stroke:#7C90A0,color:#fff\n classDef ok fill:#10B981,stroke:#7C90A0,color:#fff\n classDef stop fill:#8B0000,stroke:#7C90A0,color:#fff\n\n class Host,Key decision\n class Run,Auth ok\n class Exit stop`}),`\n`,_jsx(Heading,{level:`2`,id:`unified-endpoints`,children:`Unified Endpoints`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Endpoint`}),_jsx(_components.th,{children:`Method`}),_jsx(_components.th,{children:`Provider`}),_jsxs(_components.th,{children:[`Needs `,_jsx(_components.code,{children:`--file`}),`?`]}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/agents`})}),_jsx(_components.td,{children:`POST`}),_jsx(_components.td,{children:`agents-api`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Run the agents YAML workflow`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/a2a`})}),_jsx(_components.td,{children:`POST`}),_jsx(_components.td,{children:`a2a`}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`A2A JSON-RPC `,_jsx(_components.code,{children:`message/send`}),` (`,_jsx(_components.a,{href:`/deploy/servers/a2a#json-rpc-errors`,children:`error codes`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/.well-known/agent.json`})}),_jsx(_components.td,{children:`GET`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`Agent card; includes `,_jsx(_components.code,{children:`url`}),` only when `,_jsx(_components.code,{children:`a2a`}),` is mounted`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/a2u/info`})}),_jsx(_components.td,{children:`GET`}),_jsx(_components.td,{children:`a2u`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`A2U info`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/a2u/events/\u003cstream>`})}),_jsx(_components.td,{children:`GET`}),_jsx(_components.td,{children:`a2u`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`A2U event stream`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/__praisonai__/discovery`})}),_jsx(_components.td,{children:`GET`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Discovery document`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/health`})}),_jsx(_components.td,{children:`GET`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Health check`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`/`})}),_jsx(_components.td,{children:`GET`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`Landing JSON with the mounted `,_jsx(_components.code,{children:`providers`}),` list`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`agent-card`,children:`Agent Card`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`curl`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` http://localhost:8765/.well-known/agent.json`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsxs(_components.strong,{children:[`Response (with `,_jsx(_components.code,{children:`--file`}),`):`]})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`name`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`PraisonAI Unified`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`description`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`PraisonAI Unified Server`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`version`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`1.0.0`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`url`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`http://127.0.0.1:8765/a2a`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Without `,_jsx(_components.code,{children:`--file`}),`, the `,_jsx(_components.code,{children:`url`}),` key is omitted because `,_jsx(_components.code,{children:`/a2a`}),` is not mounted.`]}),`\n`,_jsx(Heading,{level:`2`,id:`discovery-document`,children:`Discovery Document`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`curl`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` http://localhost:8765/__praisonai__/discovery`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsxs(_components.strong,{children:[`Response (with `,_jsx(_components.code,{children:`--file`}),`):`]})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`schema_version`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`1.0.0`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`server_name`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`praisonai-unified`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`providers`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:` {`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`type`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`agents-api`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`name`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`Agents API`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`capabilities`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:` [`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`invoke`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`]},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:` {`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`type`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`a2a`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`name`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`A2A Protocol`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`capabilities`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:` [`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`agent-card`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`message-send`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`]},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:` {`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`type`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`a2u`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`name`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`A2U Event Stream`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`capabilities`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:` [`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`subscribe`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`,`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:`stream`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#C98A7D77`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`]}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:` \"`}),_jsx(_components.span,{style:{color:`#998418`,\"--shiki-dark\":`#B8A965`},children:`endpoints`}),_jsx(_components.span,{style:{color:`#99841877`,\"--shiki-dark\":`#B8A96577`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`:`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:` [`}),_jsx(_components.span,{style:{color:`#B31D28`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#FDAEB7`,\"--shiki-dark-font-style\":`italic`},children:`...`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#666666`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Without `,_jsx(_components.code,{children:`--file`}),`, `,_jsx(_components.code,{children:`providers`}),` contains only `,_jsx(_components.code,{children:`a2u`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`client-usage`,children:`Client Usage`}),`\n`,_jsx(_components.p,{children:`Use the unified endpoints CLI to interact with any provider:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light vitesse-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#121212`,color:`#393a34`,\"--shiki-dark\":`#dbd7caee`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A0ADA0`,\"--shiki-dark\":`#758575DD`},children:`# List all endpoints`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`praisonai`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` endpoints`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` list`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --url`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` http://localhost:8765`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A0ADA0`,\"--shiki-dark\":`#758575DD`},children:`# Filter by provider type`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`praisonai`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` endpoints`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` list`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --url`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` http://localhost:8765`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --type`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` agents-api`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A0ADA0`,\"--shiki-dark\":`#758575DD`},children:`# Get discovery document`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`praisonai`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` endpoints`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` discovery`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --url`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` http://localhost:8765`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A0ADA0`,\"--shiki-dark\":`#758575DD`},children:`# Health check`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#59873A`,\"--shiki-dark\":`#80A665`},children:`praisonai`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` endpoints`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` health`}),_jsx(_components.span,{style:{color:`#A65E2B`,\"--shiki-dark\":`#C99076`},children:` --url`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#C98A7D`},children:` http://localhost:8765`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`cli-options`,children:`CLI Options`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--port`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`8765`}),_jsx(_components.td,{children:`Server port`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--host`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`127.0.0.1`}),_jsx(_components.td,{children:`Server host`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--api-key`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsxs(_components.td,{children:[`API key. `,_jsxs(_components.strong,{children:[`Required when `,_jsx(_components.code,{children:`--host`}),` is not `,_jsx(_components.code,{children:`127.0.0.1`}),` / `,_jsx(_components.code,{children:`localhost`}),` / `,_jsx(_components.code,{children:`::1`}),`.`]}),` Can also be set via `,_jsx(_components.code,{children:`PRAISONAI_SERVE_API_KEY`}),`. Enforces `,_jsx(_components.code,{children:`Authorization: Bearer`}),` / `,_jsx(_components.code,{children:`X-API-Key`}),` on every route except `,_jsx(_components.code,{children:`/health`}),`, `,_jsx(_components.code,{children:`/`}),`, `,_jsx(_components.code,{children:`/.well-known/agent.json`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--file`})}),_jsx(_components.td,{children:`agents.yaml`}),_jsxs(_components.td,{children:[`Agents YAML file. `,_jsx(_components.code,{children:`agents-api`}),` and `,_jsx(_components.code,{children:`a2a`}),` are mounted only when it exists`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`environment-variables`,children:`Environment Variables`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PRAISONAI_SERVE_API_KEY`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsxs(_components.td,{children:[`API key required to bind `,_jsx(_components.code,{children:`praisonai serve unified`}),` on a non-localhost host. The server exits with `,_jsx(_components.code,{children:`SystemExit`}),` if this is unset and no `,_jsx(_components.code,{children:`--api-key`}),` is passed when `,_jsx(_components.code,{children:`--host`}),` is not localhost. Also drives the `,_jsx(_components.code,{children:`_api_auth`}),` middleware when the server is running.`]})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`provider-types`,children:`Provider Types`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`agents-api`})}),_jsxs(_components.td,{children:[`Runs the agents YAML workflow (`,_jsx(_components.code,{children:`POST /agents`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`a2a`})}),_jsxs(_components.td,{children:[`Agent-to-agent protocol (`,_jsx(_components.code,{children:`POST /a2a`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`a2u`})}),_jsx(_components.td,{children:`Agent-to-user event stream (always mounted)`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Issue`}),_jsx(_components.th,{children:`Fix`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Port in use`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`lsof -i :8765`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Missing deps`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`pip install \"praisonai[serve]\"`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`No API key`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`export OPENAI_API_KEY=\"your-key\"`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Provider not found`}),_jsxs(_components.td,{children:[`Check discovery document. `,_jsx(_components.code,{children:`agents-api`}),` / `,_jsx(_components.code,{children:`a2a`}),` need an existing `,_jsx(_components.code,{children:`--file`})]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`POST /agents`}),` returns `,_jsx(_components.code,{children:`404`}),` / `,_jsx(_components.code,{children:`405`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`--file`}),` is missing, so only `,_jsx(_components.code,{children:`a2u`}),` is mounted`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`--api-key ... is required when binding to a non-localhost host`}),` at startup`]}),_jsxs(_components.td,{children:[`Set `,_jsx(_components.code,{children:`PRAISONAI_SERVE_API_KEY=...`}),` (or `,_jsx(_components.code,{children:`--api-key ...`}),`), or bind to `,_jsx(_components.code,{children:`127.0.0.1`}),` / `,_jsx(_components.code,{children:`localhost`}),` for a private-only server.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/cli/endpoints`,children:`Endpoints CLI`}),` - Client for all server types`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/cli/serve`,children:`Serve CLI`}),` - All serve commands`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/deploy/servers/a2a`,children:`A2A Server`}),` - Agent-to-agent protocol`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/deploy/servers/a2u`,children:`A2U Server`}),` - Agent-to-user events`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/deploy/servers/agents`,children:`Agents Server`}),` - HTTP API server`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/deploy/servers/tools-mcp`,children:`Tools MCP Server`}),` - MCP is served by its own command, not `,_jsx(_components.code,{children:`serve unified`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/cli/serve`,children:`Serve CLI: recipe`}),` - Recipes are served by `,_jsx(_components.code,{children:`praisonai serve recipe`}),`, not `,_jsx(_components.code,{children:`serve unified`})]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"vitesse-light","dark":"vitesse-dark"}},"config":{},"pageMetadata":{"title":"Server: Unified","sidebarTitle":"Unified","description":"Deploy a unified server that combines the agents API, A2A and A2U providers","icon":"layer-group","href":"/deploy/servers/unified"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"CLI","slug":"cli","depth":2,"children":[]},{"title":"Agent","slug":"agent","depth":2,"children":[]},{"title":"Security","slug":"security","depth":2,"children":[]},{"title":"Unified Endpoints","slug":"unified-endpoints","depth":2,"children":[]},{"title":"Agent Card","slug":"agent-card","depth":2,"children":[]},{"title":"Discovery Document","slug":"discovery-document","depth":2,"children":[]},{"title":"Client Usage","slug":"client-usage","depth":2,"children":[]},{"title":"CLI Options","slug":"cli-options","depth":2,"children":[]},{"title":"Environment Variables","slug":"environment-variables","depth":2,"children":[]},{"title":"Provider Types","slug":"provider-types","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/praisonai/0551cd604fccc050/hide-toc.js","/docs/_mintlify/custom/praisonai/19b834eacd2cd73d/overrides/js/custom.js"],"subdomain":"praisonai","siteName":"PraisonAI","title":"Server: Unified - PraisonAI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-24T12:08:18.044Z","originalFileLocation":"deploy/servers/unified.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Deploy a unified server that combines the agents API, A2A and A2U providers\">\u003cmeta data-mint-head name=\"application-name\" content=\"PraisonAI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Server: Unified - PraisonAI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Deploy a unified server that combines the agents API, A2A and A2U providers\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"PraisonAI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://praison.ai/docs/deploy/servers/unified\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://praisonai.mintlify.site/docs/_mintlify/api/og/v2?division=Servers+%28Deploy+as+a+Server%29\u0026amp;title=Server%3A+Unified\u0026amp;description=Deploy+a+unified+server+that+combines+the+agents+API%2C+A2A+and+A2U+providers\u0026amp;theme=ddae6bb8b84db30d4d4e017d\u0026amp;signature=9d223dbbb0d8bab47353033d6ca87a0bc51cf7c41235aea6c9699431a3962e8d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Server: Unified - PraisonAI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Deploy a unified server that combines the agents API, A2A and A2U providers\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://praisonai.mintlify.site/docs/_mintlify/api/og/v2?division=Servers+%28Deploy+as+a+Server%29\u0026amp;title=Server%3A+Unified\u0026amp;description=Deploy+a+unified+server+that+combines+the+agents+API%2C+A2A+and+A2U+providers\u0026amp;theme=ddae6bb8b84db30d4d4e017d\u0026amp;signature=9d223dbbb0d8bab47353033d6ca87a0bc51cf7c41235aea6c9699431a3962e8d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/praisonai/Jamk3hz1PxeNR2v4/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"PraisonAI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#329100\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_GB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://praison.ai/docs/deploy/servers/unified\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/deploy/servers/unified.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://praison.ai/#organization\",\"name\":\"PraisonAI\",\"url\":\"https://praison.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/praisonai/pFBcVNzCyPC2mUmz/images/praisonai-logo-large-dark.png?fit=max\u0026auto=format\u0026n=pFBcVNzCyPC2mUmz\u0026q=85\u0026s=7ea3eeea94c5f762e7193a32e819987d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://praison.ai/docs#website\",\"name\":\"PraisonAI\",\"url\":\"https://praison.ai/docs\",\"publisher\":{\"@id\":\"https://praison.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://praison.ai/docs/deploy/servers/unified#webpage\",\"url\":\"https://praison.ai/docs/deploy/servers/unified\",\"name\":\"Server: Unified\",\"description\":\"Deploy a unified server that combines the agents API, A2A and A2U providers\",\"dateModified\":\"2026-10-24T12:08:18.044Z\",\"isPartOf\":{\"@id\":\"https://praison.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://praison.ai/docs/deploy/servers/unified#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://praison.ai/docs/deploy/servers/unified#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Deploy\",\"item\":\"https://praison.ai/docs/deploy/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Servers (Deploy as a Server)\",\"item\":\"https://praison.ai/docs/deploy/servers/agents\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Server: Unified\",\"item\":\"https://praison.ai/docs/deploy/servers/unified\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://praison.ai/docs/deploy/servers/unified#article\",\"headline\":\"Server: Unified\",\"name\":\"Server: Unified\",\"description\":\"Deploy a unified server that combines the agents API, A2A and A2U providers\",\"url\":\"https://praison.ai/docs/deploy/servers/unified\",\"mainEntityOfPage\":{\"@id\":\"https://praison.ai/docs/deploy/servers/unified#webpage\"},\"dateModified\":\"2026-10-24T12:08:18.044Z\",\"publisher\":{\"@id\":\"https://praison.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://praison.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"PraisonAI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"PraisonAI","nav":{"global":null,"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":"/to-site"}]},{"tab":"Docs","icon":"book-open","pages":[{"title":"Docs","href":""}]},{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/introduction"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/cli"}]},{"tab":"Gateway \u0026 Bots","pages":[{"title":"Gateway \u0026 Bots","href":"/gateway"}]},{"tab":"Agents","pages":[{"title":"Agents","href":"/agents/agents"}]},{"tab":"Code","pages":[{"title":"Code","href":"/code/overview"}]},{"tab":"UI","pages":[{"title":"UI","href":"/ui/overview"}]},{"tab":"Tools","pages":[{"title":"Tools","href":"/tools/tools"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/transports"}]},{"tab":"Deploy","groups":[{"group":"Deploy","icon":"cloud-arrow-up","pages":[{"title":"Deploy","sidebarTitle":"Overview","icon":"rocket","href":"/deploy"},{"group":"Deploy CLI (praisonai deploy)","icon":"terminal","pages":[{"title":"Deploy CLI","sidebarTitle":"Overview","icon":"terminal","href":"/deploy/cli/index"},{"title":"Deploy: API Server","sidebarTitle":"API","icon":"server","href":"/deploy/cli/api"},{"title":"Deploy: Docker","sidebarTitle":"Docker","icon":"docker","href":"/deploy/cli/docker"},{"title":"Deploy: AWS","sidebarTitle":"AWS","icon":"aws","href":"/deploy/cli/aws"},{"title":"Deploy CLI: Azure","sidebarTitle":"Azure","icon":"microsoft","href":"/deploy/cli/azure"},{"title":"Deploy: GCP","sidebarTitle":"GCP","icon":"google","href":"/deploy/cli/gcp"},{"title":"Deploy CLI: Doctor","sidebarTitle":"Doctor","icon":"stethoscope","href":"/deploy/cli/doctor"},{"title":"Deploy CLI: Status \u0026 Destroy","sidebarTitle":"Status","icon":"chart-line","href":"/deploy/cli/status"}]},{"group":"Servers (Deploy as a Server)","icon":"server","pages":[{"title":"Server: Agents HTTP","sidebarTitle":"Agents HTTP","icon":"robot","href":"/deploy/servers/agents"},{"title":"Server: Agents MCP","sidebarTitle":"Agents MCP","icon":"robot","href":"/deploy/servers/agents-mcp"},{"title":"Server: Tools MCP","sidebarTitle":"Tools MCP","icon":"wrench","href":"/deploy/servers/tools-mcp"},{"title":"Server: Recipes MCP","sidebarTitle":"Recipes MCP","icon":"book","href":"/deploy/servers/recipes-mcp"},{"title":"Server: PraisonAI MCP","sidebarTitle":"PraisonAI MCP","icon":"server","href":"/deploy/servers/praisonai-mcp"},{"title":"Server: A2A","sidebarTitle":"A2A","icon":"robot","href":"/deploy/servers/a2a"},{"title":"Server: A2U","sidebarTitle":"A2U","icon":"broadcast-tower","href":"/deploy/servers/a2u"},{"title":"Server: AGUI","sidebarTitle":"AGUI","description":"Deploy agents as AG-UI protocol servers for CopilotKit integration","icon":"window","href":"/deploy/servers/agui"},{"title":"Server: Unified","sidebarTitle":"Unified","icon":"layer-group","href":"/deploy/servers/unified"},{"title":"Recipe Registry Server","sidebarTitle":"Recipe Registry Server","description":"Deploy and manage HTTP recipe registry servers","icon":"server","href":"/deploy/recipe-registry-server"},{"title":"Unified Serve","sidebarTitle":"Serve Commands","icon":"server","href":"/deploy/servers/serve"}]},{"group":"Runtime Operations","icon":"clock","pages":[{"title":"Background Tasks Deployment","sidebarTitle":"Background Tasks","icon":"clock","href":"/deploy/background-tasks"},{"title":"Async Jobs Deployment","sidebarTitle":"Async Jobs","icon":"rocket","href":"/deploy/async-jobs-deploy"},{"title":"Scheduler Deployment","sidebarTitle":"Scheduler","icon":"clock","href":"/deploy/scheduler-deploy"}]},{"group":"API Endpoints","icon":"plug","pages":[{"title":"PraisonAI API Overview","sidebarTitle":"API Overview","icon":"plug","href":"/deploy/api/index"},{"title":"Discovery API","sidebarTitle":"Discovery","api":"GET /__praisonai__/discovery","href":"/deploy/api/discovery-api"},{"title":"Health API","sidebarTitle":"Health","api":"GET /health","href":"/deploy/api/health-api"},{"title":"Deploy API: Agents Server","sidebarTitle":"Agents API","icon":"server","openapi":"POST /{path}","href":"/deploy/api/agents-api"},{"title":"API Server Authentication","sidebarTitle":"API Server Authentication","icon":"shield-check","href":"/features/api-server-auth"},{"title":"Recipe API","sidebarTitle":"Recipe","api":"GET /v1/recipes","href":"/deploy/api/recipe-api"},{"title":"Deploy API: MCP Server","sidebarTitle":"MCP API","icon":"plug","api":"POST /messages/","href":"/deploy/api/mcp-api"},{"title":"Deploy API: A2A Server","sidebarTitle":"A2A API","icon":"robot","api":"POST /a2a","href":"/deploy/api/a2a-api"},{"title":"A2U API","sidebarTitle":"A2U","api":"GET /a2u/info","href":"/deploy/api/a2u-api"},{"title":"Deploy API: AGUI Server","sidebarTitle":"AGUI API","icon":"window","api":"POST /agui","href":"/deploy/api/agui-api"},{"title":"Recipe Registry API","sidebarTitle":"Registry API","api":"GET /v1/recipes","icon":"box-archive","href":"/deploy/api/recipe-registry-api"},{"title":"Voice Call API","icon":"phone","api":"GET /status","href":"/deploy/api/voice-call/endpoints"},{"title":"Jobs API","sidebarTitle":"Jobs","api":"POST /api/v1/runs","href":"/deploy/api/jobs-api"},{"group":"Async Jobs","icon":"clock","pages":[{"title":"Async Jobs API","sidebarTitle":"Overview","icon":"rocket","href":"/deploy/api/async-jobs/index"},{"title":"Submit Run API","sidebarTitle":"Submit Run","icon":"play","api":"POST http://127.0.0.1:8005/api/v1/runs","href":"/deploy/api/async-jobs/submit-run"},{"title":"List Runs API","sidebarTitle":"List Runs","icon":"list","api":"GET http://127.0.0.1:8005/api/v1/runs","href":"/deploy/api/async-jobs/list-runs"},{"title":"Get Run Status API","sidebarTitle":"Get Status","icon":"circle-info","api":"GET http://127.0.0.1:8005/api/v1/runs/{job_id}","href":"/deploy/api/async-jobs/get-run-status"},{"title":"Get Run Result API","sidebarTitle":"Get Result","icon":"check","api":"GET http://127.0.0.1:8005/api/v1/runs/{job_id}/result","href":"/deploy/api/async-jobs/get-run-result"},{"title":"Stream Run API","sidebarTitle":"Stream Progress","icon":"wave-pulse","api":"GET http://127.0.0.1:8005/api/v1/runs/{job_id}/stream","playground":"simple","href":"/deploy/api/async-jobs/stream-run"},{"title":"Cancel Run API","sidebarTitle":"Cancel Run","icon":"stop","api":"POST http://127.0.0.1:8005/api/v1/runs/{job_id}/cancel","href":"/deploy/api/async-jobs/cancel-run"},{"title":"Delete Run API","sidebarTitle":"Delete Run","icon":"trash","api":"DELETE http://127.0.0.1:8005/api/v1/runs/{job_id}","href":"/deploy/api/async-jobs/delete-run"},{"title":"Health Check API","sidebarTitle":"Health Check","icon":"heart-pulse","api":"GET http://127.0.0.1:8005/health","href":"/deploy/api/async-jobs/health"},{"title":"Stats API","sidebarTitle":"Stats","icon":"chart-bar","api":"GET http://127.0.0.1:8005/stats","href":"/deploy/api/async-jobs/stats"}]}]}]}]},{"tab":"Examples","pages":[{"title":"Examples","href":"/examples/agent-recipes"}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk"}]},{"tab":"JS","pages":[{"title":"JS","href":"/js/js"}]},{"tab":"Rust","pages":[{"title":"Rust","href":"/rust/rust"}]},{"tab":"Course","pages":[{"title":"Course","href":"/course/agents/01-introduction"}]}]},"basePath":"","title":"Server: Unified - PraisonAI","buildId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","deploymentId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","dynamics":[],"chunks":[]}