Skip to content

Commit de76cbe

Browse files
committed
OMIT player_response not to throw python code as output de novo
1 parent 9bdca59 commit de76cbe

2 files changed

Lines changed: 18 additions & 6 deletions

File tree

app/agents/onboarding/prompt.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ Call tools by their function name directly with simple keyword arguments.
1313
Every argument must be a plain scalar: a string, an integer, or a boolean.
1414
Never construct a dict or a list as an argument value.
1515

16-
**`advance_onboarding_step` signature — all fields except session_id/step/charon_line/player_response are optional:**
16+
**`advance_onboarding_step` signature — only session_id, step, and charon_line are required:**
1717
```
1818
advance_onboarding_step(
1919
session_id="test-001",
2020
step=1,
2121
charon_line="Good evening. How shall I address you?",
22-
player_response="My name is Pamonha Lady.",
22+
player_response="My name is Pamonha Lady.", # optional — omit on Charon-only turns like step 5
2323
alias="Pamonha Lady", # optional — working name/handle player gave
2424
name="Pamonha Lady", # optional — full name if explicitly stated
2525
archetype="assassin", # optional — only if clearly stated
@@ -29,13 +29,20 @@ advance_onboarding_step(
2929
)
3030
```
3131

32+
**`player_response` is optional.** At step 5 (the mystery-path revelation) Charon
33+
is speaking the revelation monologue — there is no new player reply to log.
34+
Omit `player_response` entirely at that step, or pass an empty string. Do NOT
35+
invent a player reply just to fill the slot.
36+
3237
**NEVER pass `extracted_data={...}` — that parameter no longer exists.**
3338
**NEVER wrap in `print()` or `default_api.` — these cause errors.**
3439
This is NOT a Python code execution environment. No Python code. Call the function directly.
3540

3641
**CRITICAL — Revelation step call sequence (mystery path step 5):**
3742
When the player has completed all 5 steps the exact sequence is:
38-
1. `advance_onboarding_step(session_id=..., step=5, identity_revealed=True, ...)`
43+
1. `advance_onboarding_step(session_id=..., step=5, charon_line="<revelation line>", identity_revealed=True)`
44+
**OMIT `player_response`**. At step 5 Charon is delivering the revelation;
45+
there is no new player reply to log. Do not fabricate one.
3946
2. `complete_onboarding(session_id=...)`
4047
Do NOT call `advance_onboarding_step` a third time. Do NOT loop.
4148
After `complete_onboarding` returns, write Charon's farewell line and STOP.
@@ -123,7 +130,9 @@ Charon produces the guest register and formally acknowledges who they are.
123130
or "Call me X", their name is X. The mystery is about their place in this world — their
124131
connections, their faction, their history — not about overwriting what they told you to
125132
call them.
126-
→ Call `advance_onboarding_step(session_id=..., step=5, identity_revealed=True, ...)`
133+
→ Call `advance_onboarding_step(session_id=..., step=5, charon_line="<revelation>", identity_revealed=True)`
134+
— OMIT `player_response` at this step. Charon is speaking the revelation;
135+
there is no player reply to log.
127136
→ Immediately follow with `complete_onboarding(session_id=...)` — no further advance_onboarding_step calls.
128137
→ Write Charon's farewell line. STOP.
129138

app/tools/player_tools.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ async def advance_onboarding_step(
8787
session_id: str,
8888
step: int,
8989
charon_line: str,
90-
player_response: str,
90+
player_response: str = "",
9191
alias: str | None = None,
9292
name: str | None = None,
9393
archetype: str | None = None,
@@ -106,7 +106,10 @@ async def advance_onboarding_step(
106106
session_id: The current session.
107107
step: Onboarding step number (1-based).
108108
charon_line: The exact line Charon just spoke.
109-
player_response: The player's reply.
109+
player_response: The player's reply. Optional — defaults to empty string
110+
for Charon-only turns (e.g. step 5 revelation, where
111+
Charon delivers the final monologue with no player reply
112+
to log). The underlying column is nullable.
110113
alias: Working name/handle the player provided (e.g. "Ghost", "Pamonha Lady").
111114
name: Full name if explicitly stated — leave null if uncertain.
112115
archetype: One of: assassin, cleaner, fixer, information_broker,

0 commit comments

Comments
 (0)