1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
{
"$type": "com.fedfork.exec.wasm.module",
"name": "asyncai",
"module": {
"$type": "blob",
"ref": {
"$link": "bafkreidvrvolirhkfwrx4m5r3fdwuclhvjb3lmamrfntyzvj4wigo4ael4"
},
"mimeType": "application/wasm",
"size": 251285
},
"abi": "emdash-wasm-json-v1",
"source": {
"uri": "at://did:plc:ocnuqjlzgohypj3zoznermms/com.fedfork.exec.source.manifest/asyncai.1794299236136",
"cid": "bafyreif4nprvgdsokj74aeepchhzy2r3aqxeizknlsnyltfafvjk77nzla"
},
"actions": [
{
"entry": "run",
"label": "Run the agent",
"description": "Sends the prompt (after any earlier messages), calls the MCP tools the model asks for, and answers with the transcript.",
"fields": [
{
"key": "prompt",
"label": "Prompt"
},
{
"key": "system",
"label": "System prompt"
},
{
"key": "provider",
"label": "API format: anthropic (Messages API, the default) or openai (chat completions)"
},
{
"key": "endpoint",
"label": "Base URL (anthropic: https://api.anthropic.com; openai: https://cocore.dev/api/v1)"
},
{
"key": "model",
"label": "Model (anthropic: claude-opus-5-5; openai: required, e.g. stub on co/core)"
},
{
"key": "maxSteps",
"label": "Inference calls at most (default 9)"
},
{
"key": "compact",
"label": "Compaction: client (default), server (Anthropic's beta) or off"
},
{
"key": "contextWindow",
"label": "Context window, tokens (default 200000; compaction at compactAt, default 0.8, of it)"
},
{
"key": "mcp",
"label": "MCP servers, JSON: [{\"name\":\"docs\",\"url\":\"https://...\"}, {\"name\":\"vm\",\"url\":\"webrtc:///...\"}, {\"name\":\"code\",\"hook\":\"com.fedfork.exec.mcp.message\"}]"
},
{
"key": "dynamicMcp",
"label": "MCP servers the model may connect mid-run (mcp_connect): true (any URL the host allows), or JSON: [\"url\" | a URL prefix, e.g. webrtc:/// or iroh:/// | a hook NSID]"
}
]
}
],
"config": [
{
"key": "system",
"label": "System prompt",
"type": "string"
},
{
"key": "provider",
"label": "API format",
"type": "string",
"description": "anthropic (the default) or openai"
},
{
"key": "endpoint",
"label": "Base URL",
"type": "string"
},
{
"key": "model",
"label": "Model",
"type": "string"
},
{
"key": "maxSteps",
"label": "Inference calls at most",
"type": "integer"
},
{
"key": "compact",
"label": "Compaction",
"type": "string",
"description": "client (default), server or off"
},
{
"key": "contextWindow",
"label": "Context window, tokens",
"type": "integer"
},
{
"key": "mcp",
"label": "MCP servers",
"type": "array",
"description": "[{name, url} | {name, hook}]: a hook is an edge of the composition"
},
{
"key": "dynamicMcp",
"label": "MCP servers the model may connect mid-run",
"type": "array",
"description": "URLs, URL prefixes or hook NSIDs"
}
],
"createdAt": "2026-11-10T08:27:15.366Z",
"description": "An agent loop: inference over the Anthropic Messages API or OpenAI chat completions (co/core, or any compatible endpoint), tools from MCP servers (Streamable HTTP over https or a host transport's webrtc:// and iroh:// URLs, or in-process through a composition; given at the start or connected by the model mid-run), until the model stops or the step cap.",
"session": {
"uri": "at://did:plc:ocnuqjlzgohypj3zoznermms/com.fedfork.exec.oauth.clientMetadata/asyncai",
"cid": "bafyreidnqbwasooeqwsmhnatbgpbrz4a23ydjtjm4x7fxdes7z3hprmqyy"
},
"calls": [
"com.fedfork.exec.http.fetch",
"com.fedfork.exec.held.append",
"com.fedfork.exec.held.put"
],
"hooks": [
{
"nsid": "com.fedfork.exec.mcp.message",
"reason": "an in-process MCP server: one JSON-RPC message in, its response out (null for a notification)"
}
],
"anyHooks": true,
"http": [
"*",
"webrtc://*",
"iroh://*"
]
}