[{"data":1,"prerenderedAt":383},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fengine":3},{"id":4,"title":5,"body":6,"description":15,"extension":377,"meta":378,"navigation":79,"path":379,"seo":380,"stem":381,"__hash__":382},"docs\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fengine.md","engine",{"type":7,"value":8,"toc":372},"minimark",[9,12,16,115,120,126,182,189,193,200,253,256,341,345,368],[10,11,5],"h1",{"id":5},[13,14,15],"p",{},"Configures which inference provider the agent loop uses. Without this field the\nruntime falls back to whatever engine is set in the environment.",[17,18,23],"pre",{"className":19,"code":20,"language":21,"meta":22,"style":22},"language-ts shiki shiki-themes dark-plus","import { Axon, Cerebras, Codex, Ollama, OpenRouter } from \"@arcforge\u002Fengines\"\n\nexport default defineAgent({\n    engine: Codex(),\n})\n","ts","",[24,25,26,74,81,97,109],"code",{"__ignoreMap":22},[27,28,31,35,39,43,46,49,51,54,56,59,61,64,67,70],"span",{"class":29,"line":30},"line",1,[27,32,34],{"class":33},"sYbnZ","import",[27,36,38],{"class":37},"sTNBD"," { ",[27,40,42],{"class":41},"s3F5K","Axon",[27,44,45],{"class":37},", ",[27,47,48],{"class":41},"Cerebras",[27,50,45],{"class":37},[27,52,53],{"class":41},"Codex",[27,55,45],{"class":37},[27,57,58],{"class":41},"Ollama",[27,60,45],{"class":37},[27,62,63],{"class":41},"OpenRouter",[27,65,66],{"class":37}," } ",[27,68,69],{"class":33},"from",[27,71,73],{"class":72},"sKc5r"," \"@arcforge\u002Fengines\"\n",[27,75,77],{"class":29,"line":76},2,[27,78,80],{"emptyLinePlaceholder":79},true,"\n",[27,82,84,87,90,94],{"class":29,"line":83},3,[27,85,86],{"class":33},"export",[27,88,89],{"class":33}," default",[27,91,93],{"class":92},"sCudf"," defineAgent",[27,95,96],{"class":37},"({\n",[27,98,100,103,106],{"class":29,"line":99},4,[27,101,102],{"class":41},"    engine:",[27,104,105],{"class":92}," Codex",[27,107,108],{"class":37},"(),\n",[27,110,112],{"class":29,"line":111},5,[27,113,114],{"class":37},"})\n",[116,117,119],"h2",{"id":118},"managed-engine","Managed engine",[13,121,122,125],{},[24,123,124],{},"Axon()"," routes inference through Axon Cloud managed inference. Pass a model to\npin a specific catalog entry, or omit it to use the account default.",[17,127,129],{"className":19,"code":128,"language":21,"meta":22,"style":22},"import { Axon } from \"@arcforge\u002Fengines\"\n\nexport default defineAgent({\n    engine: Axon({ model: \"axon-astra-v1\" }),\n})\n",[24,130,131,145,149,159,178],{"__ignoreMap":22},[27,132,133,135,137,139,141,143],{"class":29,"line":30},[27,134,34],{"class":33},[27,136,38],{"class":37},[27,138,42],{"class":41},[27,140,66],{"class":37},[27,142,69],{"class":33},[27,144,73],{"class":72},[27,146,147],{"class":29,"line":76},[27,148,80],{"emptyLinePlaceholder":79},[27,150,151,153,155,157],{"class":29,"line":83},[27,152,86],{"class":33},[27,154,89],{"class":33},[27,156,93],{"class":92},[27,158,96],{"class":37},[27,160,161,163,166,169,172,175],{"class":29,"line":99},[27,162,102],{"class":41},[27,164,165],{"class":92}," Axon",[27,167,168],{"class":37},"({ ",[27,170,171],{"class":41},"model:",[27,173,174],{"class":72}," \"axon-astra-v1\"",[27,176,177],{"class":37}," }),\n",[27,179,180],{"class":29,"line":111},[27,181,114],{"class":37},[13,183,184,185,188],{},"This is the default when you deploy with ",[24,186,187],{},"axon deploy",". No key management — the\nplatform handles it.",[116,190,192],{"id":191},"local-engines","Local engines",[13,194,195,196,199],{},"Local engines are functions imported from ",[24,197,198],{},"@arcforge\u002Fengines",". The function receives\nthe message history and returns a string. The runtime calls it inside the loop —\nit never has direct access to the inference provider.",[17,201,203],{"className":19,"code":202,"language":21,"meta":22,"style":22},"import { Ollama } from \"@arcforge\u002Fengines\"\n\nexport default defineAgent({\n    engine: Ollama({ model: \"llama3.2\" }),\n})\n",[24,204,205,219,223,233,249],{"__ignoreMap":22},[27,206,207,209,211,213,215,217],{"class":29,"line":30},[27,208,34],{"class":33},[27,210,38],{"class":37},[27,212,58],{"class":41},[27,214,66],{"class":37},[27,216,69],{"class":33},[27,218,73],{"class":72},[27,220,221],{"class":29,"line":76},[27,222,80],{"emptyLinePlaceholder":79},[27,224,225,227,229,231],{"class":29,"line":83},[27,226,86],{"class":33},[27,228,89],{"class":33},[27,230,93],{"class":92},[27,232,96],{"class":37},[27,234,235,237,240,242,244,247],{"class":29,"line":99},[27,236,102],{"class":41},[27,238,239],{"class":92}," Ollama",[27,241,168],{"class":37},[27,243,171],{"class":41},[27,245,246],{"class":72}," \"llama3.2\"",[27,248,177],{"class":37},[27,250,251],{"class":29,"line":111},[27,252,114],{"class":37},[13,254,255],{},"Available engines:",[257,258,259,272],"table",{},[260,261,262],"thead",{},[263,264,265,269],"tr",{},[266,267,268],"th",{},"Import",[266,270,271],{},"What it connects to",[273,274,275,285,295,308,318,331],"tbody",{},[263,276,277,282],{},[278,279,280],"td",{},[24,281,124],{},[278,283,284],{},"Axon Cloud managed inference",[263,286,287,292],{},[278,288,289],{},[24,290,291],{},"Codex()",[278,293,294],{},"ChatGPT subscription Codex via OAuth",[263,296,297,302],{},[278,298,299],{},[24,300,301],{},"Cerebras()",[278,303,304,305],{},"Cerebras Inference via ",[24,306,307],{},"CEREBRAS_API_KEY",[263,309,310,315],{},[278,311,312],{},[24,313,314],{},"Ollama({ model })",[278,316,317],{},"Local Ollama server",[263,319,320,325],{},[278,321,322],{},[24,323,324],{},"OpenRouter({ model })",[278,326,327,328],{},"OpenRouter via ",[24,329,330],{},"OPENROUTER_API_KEY",[263,332,333,338],{},[278,334,335],{},[24,336,337],{},"Mock()",[278,339,340],{},"Deterministic stub for tests",[116,342,344],{"id":343},"engine-is-not-a-string","engine is not a string",[13,346,347,350,351,45,353,45,356,45,358,45,361,364,365,367],{},[24,348,349],{},"engine: \"gpt-4o\""," is not valid. Engine is always an adapter function call such\nas ",[24,352,124],{},[24,354,355],{},"Cerebras(...)",[24,357,291],{},[24,359,360],{},"Ollama(...)",[24,362,363],{},"OpenRouter(...)",", or\n",[24,366,337],{},". The string form does not exist.",[369,370,371],"style",{},"html pre.shiki code .sYbnZ, html code.shiki .sYbnZ{--shiki-default:#C586C0}html pre.shiki code .sTNBD, html code.shiki .sTNBD{--shiki-default:#D4D4D4}html pre.shiki code .s3F5K, html code.shiki .s3F5K{--shiki-default:#9CDCFE}html pre.shiki code .sKc5r, html code.shiki .sKc5r{--shiki-default:#CE9178}html pre.shiki code .sCudf, html code.shiki .sCudf{--shiki-default:#DCDCAA}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":22,"searchDepth":76,"depth":76,"links":373},[374,375,376],{"id":118,"depth":76,"text":119},{"id":191,"depth":76,"text":192},{"id":343,"depth":76,"text":344},"md",{},"\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fengine",{"title":5,"description":15},"docs\u002Fv2\u002Fapi\u002Fconfig\u002Fengine","cDwHLGTzIUYZF3rcc_EVNhJEIJR6BPuHvJgUfoMwEjU",1785671808097]