Please see my answers inline with your questions below:
Is this a known Gemini Playbooks bug?
Not necessarily a bug, but a common challenge when dealing with a generative agent like Dialogflow CX Playbooks. Playbooks use LLMs, which are nondeterministic, to control the conversation, take actions, and respond to end-users. Sometimes, an agent may not reach a definitive session-ending instruction if there isn’t a clear, explicit, and consistently enforced termination mechanism.
Are there undocumented requirements for terminate_session_tool to succeed? Is action: done required for all session-ending steps?
The terminate_session_tool is not a standard way to end a session within Dialogflow CX Playbooks. As quoted from the documentation, here are ways to achieve more explicit control like session-ending:
“By default, playbooks use LLMs to control the conversation, take actions, and respond to end-users. If you need more explicit control over the agent’s behavior, you can use flows or conditional actions.”
Could rule placement or indentation affect execution?
Yes, they could directly affect execution, it sometimes causes the inconsistent behavior within your playbook. For overall Playbook best practices, you may refer to this documentation.