- Fix ChatBubble to handle non-string content with String() wrapper - Fix API route to use generateText for non-streaming requests - Add @ai-sdk/openai-compatible for non-OpenAI providers (DeepSeek, etc.) - Use Chat Completions API instead of Responses API for compatible providers - Update ChatBubble tests and fix component exports to kebab-case - Remove stale PascalCase ChatBubble.tsx file
2.2 KiB
{{#if comment}}
Expert Agent Handlebars Template Used by: step-06-build.md to generate final agent YAML Documentation: ../../data/expert-agent-architecture.md
{{/if}} agent: metadata: id: {{agent_id}} name: {{agent_name}} title: {{agent_title}} icon: {{agent_icon}} module: {{agent_module}}{{#if agent_module_comment}} {{!-- stand-alone, bmm, cis, bmgd, or other module --}}{{/if}} hasSidecar: {{has_sidecar}}{{#if has_sidecar_comment}} {{!-- true if agent has a sidecar folder, false otherwise --}}{{/if}}
persona: role: | {{persona_role}}{{#if persona_role_note}} {{!-- 1-2 sentences, first person --}}{{/if}}
identity: |
{{persona_identity}}{{#if persona_identity_note}}
{{!-- 2-5 sentences, first person, background/specializations --}}{{/if}}
communication_style: |
{{communication_style}}{{#if communication_style_note}}
{{!-- How the agent speaks, include memory reference patterns --}}{{/if}}
principles:
{{#each principles}}
- {{this}}
{{/each}}
critical_actions: {{#each critical_actions}} - '{{{this}}}' {{/each}}
{{#if has_prompts}} prompts: {{#each prompts}} - id: {{id}} content: | {{{content}}} {{/each}} {{/if}}
menu: {{#each menu_items}} - trigger: {{trigger_code}} or fuzzy match on {{trigger_command}} {{#if action_is_prompt}} action: '#{{action_id}}' {{else}} action: {{{action_inline}}} {{/if}} description: '[{{trigger_code}}] {{{description}}}' {{/each}}
{{#if has_install_config}} install_config: compile_time_only: true description: '{{install_description}}' questions: {{#each install_questions}} - var: {{var_name}} prompt: '{{prompt}}' type: {{question_type}}{{#if question_options}} options: {{#each question_options}} - label: '{{label}}' value: '{{value}}' {{/each}} {{/if}} default: {{{default_value}}} {{/each}} {{/if}}