Build with your coding agent
The fastest way to your own model: your coding agent talks to ours. It already knows your code; we know how to make a fast model from it. You stay in charge of every decision.
- Connect it. Add the MCP connector once (see Use with coding agents):
claude mcp add --transport http canonopy https://api.canonopylabs.com/mcp \
--header "Authorization: Bearer $CANONOPY_API_KEY"- Ask for a model. "Build a Canonopy model for our refund decisions." That's all it needs to hear.
JSON first
Nothing is built until your agent has the same JSON you send Jev: one real state and your questions. If you don't hand it over, build_model builds nothing and tells your agent how to get it:
- ask you for it: "Paste the request you send Jev";
- or draft it from your code: it finds where the decision is made (or where Jev is called), takes
statefrom the real object your program has at that moment, and writesquestionsfrom the decision's possible outcomes. It shows you the JSON and asks you to confirm it before sending anything.
draft_request_help gives your agent the JSON's shape, an example and a short checklist.
A few questions, answered upfront
With the JSON in, the build asks one round of questions about it, most useful first: what fields mean, their units and ranges, whether a yes/no field is something your program computes, where two choices meet, 10 to 50 real examples across named situations, and any unwritten rules. Your agent answers from your code, config and logs, and asks you when it isn't sure. See Answer a few questions.
The build waits for the answers (up to 10 minutes by default), then makes your model once, with the full picture:
| step | about |
|---|---|
| your agent answers the questions | 1-3 minutes |
| your model is made and checked | 3-6 minutes |
| total | 5-9 minutes |
Every answer is optional: more help gives a better model, and the build never waits forever.
Then
The model is trained and checked on its own, and build_model returns when it's ready. Review how it decides any time (optional): your agent can show you about 20 examples (get_examples) and retrain with any you correct (correct_examples). Before it acts on real work, try it:
- Games: your agent runs a playtest on your machine: your game plays with the model, and only the scores come back.
- Everything else: shadow mode runs it beside Jev on real requests without acting, and shows you where they disagree.
What your agent gets, and doesn't
It gets what it needs to help: questions about your own JSON, the examples of how it decides, your model's quality, plain-words advice, and the finished model. Everything it sends is read as information about your decision, never as instructions, and your hard rules are never changed by an answer.
The tools
| tool | what it does |
|---|---|
build_model | builds from your JSON (asks the questions first by default) |
draft_request_help | the JSON's shape and a checklist for getting it |
get_build_questions · answer_build_questions | the questions about your JSON, and your answers |
get_build | where the build is (wait: true waits for it to finish) |
get_examples · correct_examples | optional: how your model decides on about 20 examples, and a retrain with your corrections |
shadow_mode · send_shadow_cases · review_shadow_disagreements | shadow mode |
report_play_results | a playtest's results (the CLI sends them for you) |
spot_checks | this week's optional spot-check card |
No coding agent? The same questions are in the console on the build's page, and in the CLI (canonopy build questions, canonopy build answer).