Packages
Secure BEAM sandbox runtime for LLM code mode and MCP aggregation. Run concurrent LLM/tool clients safely while agents orchestrate approved tools, call upstream MCP/OpenAPI servers, and transform data.
Current section
Files
Jump to
Current section
Files
priv/prompts/behavior-multi-turn.md
# PTC-Lisp Multi-Turn Behavior (Shared Core)
Shared rules for multi-turn execution. Combined with a return-mode fragment (explicit or auto).
<!-- version: 1 -->
<!-- date: 2026-05-18 -->
<!-- prompt-guidelines: priv/prompts/README.md -->
<!-- audience: ptc-lisp-system-prompt -->
<!-- budget: target<=1000 bytes, hard<=1500 bytes -->
<!-- changes: Extracted shared core from lisp-addon-multi_turn.md -->
<!-- used-by: PtcRunner.Lisp.LanguageSpec via PtcRunner.Lisp.PromptRegistry -->
<!-- profiles: explicit_return, explicit_journal -->
<!-- shown-in: SubAgent PTC-Lisp system prompt for multi-turn profiles -->
<!-- composed-with: reference.md before this card; behavior-return-explicit.md after; capability-journal.md optionally after -->
<!-- PTC_PROMPT_START -->
<multi_turn_rules>
Respond with EXACTLY ONE ```clojure code block per turn. No text outside it. Put reasoning in `;; comments`.
Tool calls: `(tool/name {:key value})`, never positional args.
Don't echo context data. Don't print final answers before returning.
Keep programs short. You may call several tools in one turn:
```clojure
(def users (tool/get-users {:role "admin"}))
(def logs (tool/get-logs {:level "error"}))
(println "users:" (count users) "logs:" (count logs))
```
Output is truncated around 512 chars. Print concise debug only.
</multi_turn_rules>
<state>
```clojure
(def results (tool/fetch-data {:id 123}))
results
```
Definitions persist across turns. `(budget/remaining)` shows turns/depth/tokens.
</state>
<!-- PTC_PROMPT_END -->