You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add capture: response to store an agent's final response text as output
Tasks can set `capture: response` to publish the agent's final response
text (the prose after its last tool call) as their named `outputs.<id>`
instead of their final tool result. This applies uniformly to a plain
task's scalar output and to each branch's result in a fan-out task's
fan-in list, and composes with the `outputs` JSON Schema. The default,
`capture: tool_result`, is unchanged.
The stream driver accumulates response text and resets it on each tool
call, then forwards the final segment through a new record_message sink
threaded from deploy_task_agents; the capture layer wraps it as a
synthetic tool result so response and tool-result capture share one
decode/validate path. Response capture is rejected on shell tasks.
Add an example_model_comparison taskflow that fans a question across
models, captures each model's answer, and has a judge task compare them,
with runnable walkthrough docs.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: README.md
+22Lines changed: 22 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -237,6 +237,28 @@ The framework includes a [CodeQL](https://codeql.github.com/) MCP server that ca
237
237
238
238
Instead of generating CodeQL queries itself, the CodeQL MCP Server is used to provide CodeQL-query based MCP tools that allow an Agent to navigate and explore code. It leverages templated CodeQL queries to provide targeted context for model driven code analysis.
239
239
240
+
### Model comparison and evaluation
241
+
242
+
The framework can also run the same prompt across several models and compare their answers, which is useful for evaluating models against each other on a given task. The [example_model_comparison](examples/taskflows/example_model_comparison.yaml) taskflow shows the pattern: a multi-model task fans the same question out across two models, captures each model's prose answer with `capture: response`, and a second "judge" task reads every captured answer by name (`outputs.answers`) and picks the best one.
243
+
244
+
Run it against your endpoint like any other taskflow:
Each model answers in its own labelled output block, and the judge task then compares them, for example:
251
+
252
+
```
253
+
** 🤖✏️ Output for gpt_alt
254
+
A use-after-free bug is a type of software vulnerability that occurs when a program continues to use a memory location after it has been freed ...
255
+
** 🤖✏️ Output for gpt_fast
256
+
A use-after-free bug occurs when a program continues to use memory after it has been freed ...
257
+
The gpt_fast answer is best because it is more concise while still clearly explaining ...
258
+
```
259
+
260
+
The two models are defined in [multi_model.yaml](examples/model_configs/multi_model.yaml); swap the provider IDs there to compare whatever models your endpoint exposes. `capture: response` is what makes the models' prose answers (rather than a tool result) available to the judge; see the "Capturing the response instead of a tool result" section of [doc/GRAMMAR.md](doc/GRAMMAR.md) for details.
Toolboxes are MCP server configurations. They can be defined at the Agent level or overridden at the task level. These MCP servers are started and made available to the Agents in the Agents list during a Task. The `toolboxes` field should contain a list of files for the `toolboxes` that are available for the task:
0 commit comments