chores: move model name to centralized env variable

This commit is contained in:
laansdole 2026-01-21 14:53:16 +07:00
parent a96d633dff
commit d2695f9bcb
32 changed files with 653 additions and 125 deletions

31
.env.example Normal file
View File

@ -0,0 +1,31 @@
# ============================================================================
# LLM Provider Configuration (OpenAI-Compatible API)
# ============================================================================
# This project supports any OpenAI-compatible API provider.
# Configure BASE_URL, API_KEY, and MODEL_NAME based on your chosen provider.
# ----------------------------------------------------------------------------
# Option 1: OpenAI
# ----------------------------------------------------------------------------
BASE_URL=https://api.openai.com/v1
API_KEY=sk-your-openai-api-key-here
MODEL_NAME=gpt-4o
# ----------------------------------------------------------------------------
# Option 2: Other OpenAI-Compatible Providers
# ----------------------------------------------------------------------------
# Example for LM Studio
# BASE_URL=http://localhost:1234/v1
# API_KEY=lm-studio
# MODEL_NAME=local-model
# ============================================================================
# Optional: Web Search and Reading Tools
# ============================================================================
# SERPER_DEV_API_KEY=your-serper-api-key-here
# Get from: https://serper.dev
# JINA_API_KEY=your-jina-api-key-here
# Get from: https://jina.ai

View File

@ -38,7 +38,7 @@ graph:
- id: Programmer Code Review
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
role: |-
${COMMON_PROMPT}
You are Programmer. we are both working at ChatDev. We share a common interest in collaborating to successfully complete a task assigned by a new customer.
@ -71,7 +71,7 @@ graph:
- id: Programmer Test Modification
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
role: |-
${COMMON_PROMPT}
You are Programmer. we are both working at ChatDev. We share a common interest in collaborating to successfully complete a task assigned by a new customer.
@ -104,7 +104,7 @@ graph:
- id: Chief Executive Officer
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
${COMMON_PROMPT}
@ -166,7 +166,7 @@ graph:
- id: Programmer Code Complete
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
${COMMON_PROMPT}
@ -214,7 +214,7 @@ graph:
- id: Programmer Coding
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
${COMMON_PROMPT}
@ -265,7 +265,7 @@ graph:
- id: Chief Product Officer
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
${COMMON_PROMPT}
@ -323,7 +323,7 @@ graph:
- id: Programmer Test Error Summary
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
${COMMON_PROMPT}
@ -360,7 +360,7 @@ graph:
- id: Code Reviewer
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
${COMMON_PROMPT}
@ -458,7 +458,7 @@ graph:
- id: Software Test Engineer
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
${COMMON_PROMPT}

View File

@ -9,7 +9,7 @@ graph:
context_window: 0
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -70,7 +70,7 @@ graph:
context_window: 0
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -132,7 +132,7 @@ graph:
context_window: 6
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -211,7 +211,7 @@ graph:
context_window: 6
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -370,7 +370,7 @@ graph:
context_window: 0
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -414,7 +414,7 @@ graph:
context_window: 6
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -488,7 +488,7 @@ graph:
context_window: 6
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -562,7 +562,7 @@ graph:
context_window: 6
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-

View File

@ -27,7 +27,7 @@ graph:
- id: Aggregate
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
You are an experienced and meticulous software analyst and developer, trusted by others to optimize and enhance their code. Now there are several programs that serve the same purpose and are currently competing in the software development field.

View File

@ -40,7 +40,7 @@ graph:
- id: Instructor
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
According to the new user's task and our software designs:
@ -69,7 +69,7 @@ graph:
- id: Instructor After Run Code
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
According to the new user's task and our software designs:
@ -98,7 +98,7 @@ graph:
- id: Assistant
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
According to the new user's task, our designed product modality and languages, our developed first-edition source codes are listed below:

View File

@ -14,7 +14,7 @@ graph:
description: 'Defines the raw requirements and object manifest.'
context_window: 0
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Role
You are a professional **3D Technical Product Manager**.
@ -74,7 +74,7 @@ graph:
description: 'Splits the spec into Geometry tasks and Decoration tasks.'
context_window: 0
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Role
You are the **Technical Planner**.
@ -120,7 +120,7 @@ graph:
description: 'The central brain managing state and routing.'
context_window: 20
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Role
You are the **Project Orchestrator**.
@ -189,7 +189,7 @@ graph:
description: 'Builds the blockout geometry.'
context_window: 10
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Role
You are a **Structure Architect**.
@ -230,7 +230,7 @@ graph:
description: 'Checks geometry scale and physics.'
context_window: 5
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Role
You are a **Civil Engineer**.
@ -266,7 +266,7 @@ graph:
description: 'Applies materials and lighting.'
context_window: 10
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
You are a **Decorator Architect**.
You have taken over a verified white model. You need to use tools to execute Blender Python code.
@ -303,7 +303,7 @@ graph:
description: 'Checks final visual quality.'
context_window: 5
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Role
You are an **Art Director**.

View File

@ -14,7 +14,7 @@ graph:
description: ''
context_window: 0
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Role
You are a professional **3D Technical Product Manager**.
@ -69,7 +69,7 @@ graph:
description: ''
context_window: 0
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Role
You are the **Technical Planner**.
@ -123,7 +123,7 @@ graph:
description: ''
context_window: 10
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Identity
You are a **Procedural Architect**, a top expert in the Blender Python API (bpy).
@ -228,7 +228,7 @@ graph:
description: ''
context_window: 10
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |
# Role
You are a **Technical Supervisor**, responsible for the **Sanity Check** of 3D scenes.

View File

@ -12,7 +12,7 @@ graph:
description: ''
context_window: 0
config:
name: gemini-2.5-flash
name: ${MODEL_NAME}
role: |-
You are the **Executor**.
Your role is to act as the bridge between the Agents and the Blender process.
@ -50,7 +50,7 @@ graph:
description: ''
context_window: 6
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |-
You are the **Quality Assurance Inspector**.
Your ONLY job is to visually inspect the 3D scene and accept or reject it.
@ -128,7 +128,7 @@ graph:
description: ''
context_window: 0
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |-
You are the **Planner** for a Blender Scientific Visualization System.
Your goal is to translate natural language scientific requests (e.g., "Draw a P3HT:PCBM bulk heterojunction") into a structured, step-by-step building plan for the Engineer.
@ -164,7 +164,7 @@ graph:
description: ''
context_window: 0
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |-
You are the **Scientist** for a Blender Scientific Visualization System.
Your goal is to ensure the scientific accuracy of the visualization by providing precise parameters and physical logic.
@ -198,7 +198,7 @@ graph:
type: agent
context_window: 10
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |-
You are the **Engineer**. You are an expert in the Blender Python API (`bpy`).
Your goal is to write a **COMPLETE, standalone Python script** that builds the scene described by the Planner and Scientist.
@ -266,7 +266,7 @@ graph:
description: ''
context_window: 2
config:
name: gemini-2.5-flash-image
name: ${MODEL_NAME}
role: Take the user's rough sketch and the scientific description.
Generate a high-fidelity, photorealistic scientific illustration. The
goal is to create a visual reference for a 3D modeling team. Ensure

View File

@ -12,7 +12,7 @@ graph:
description: ''
context_window: 0
config:
name: gemini-2.5-flash
name: ${MODEL_NAME}
role: |-
You are the **Executor**.
Your role is to act as the bridge between the Agents and the Blender process.
@ -50,7 +50,7 @@ graph:
description: ''
context_window: 0
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |-
You are the **Scientist** for a Blender Scientific Visualization System.
Your goal is to ensure the scientific accuracy of the visualization by providing precise parameters and physical logic.
@ -81,7 +81,7 @@ graph:
description: ''
context_window: 0
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |-
You are the **Planner** for a Blender Scientific Visualization System.
Your goal is to translate natural language scientific requests (e.g., "Draw a P3HT:PCBM bulk heterojunction") into a structured, step-by-step building plan for the Engineer.
@ -113,7 +113,7 @@ graph:
description: ''
context_window: 10
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |-
You are the **Engineer**. You are an expert in the Blender Python API (`bpy`).
Your goal is to write a **COMPLETE, standalone Python script** that builds the scene described by the Planner and Scientist.
@ -177,7 +177,7 @@ graph:
type: agent
context_window: 0
config:
name: gemini-3-pro-preview
name: ${MODEL_NAME}
role: |-
You are the **Reviewer**. You have access to the live Blender instance via specific tools.
Your goal is to inspect the generated 3D scene and ensure it matches the Planner's requirements and the Scientist's data.

View File

@ -11,7 +11,7 @@ graph:
context_window: -1
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -42,7 +42,7 @@ graph:
context_window: -1
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -75,7 +75,7 @@ graph:
context_window: -1
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -112,7 +112,7 @@ graph:
context_window: 5
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -148,7 +148,7 @@ graph:
context_window: 5
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-

View File

@ -10,7 +10,7 @@ graph:
context_window: -1
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -43,7 +43,7 @@ graph:
context_window: -1
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -80,7 +80,7 @@ graph:
context_window: 5
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -111,7 +111,7 @@ graph:
context_window: 5
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -133,7 +133,7 @@ graph:
context_window: 5
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
base_url: ${BASE_URL}
api_key: ${API_KEY}
role: |-
@ -179,7 +179,7 @@ graph:
- id: MetaData Analyst
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
You are a highly fault-tolerant Python data metadata analysis expert. [Task] Write Python code to read designated data files, perform deep metadata analysis (Data Profiling), and save the results as a new file ending with _metadata.txt. You must first conduct a preliminary inspection of the data using tools (e.g., describe_available_files, load_file, read_text_file_snippet) (determine file format, delimiters, etc.) to generate precise analysis code.
@ -219,7 +219,7 @@ graph:
- id: Data Analyst
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
You are the **[Central Control Node]** of a data analysis pipeline.
@ -258,7 +258,7 @@ graph:
- id: Visualization Programmer2
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
You are a **Senior Visualization Engineer** proficient in Matplotlib and Seaborn. Your goal is not merely to "run the code," but to generate **Publication Quality** charts. Note that you have the capability to call the `describe_available_files`, `load_file`, `read_text_file_snippet`, and `install_python_packages` tools. Before starting to write code, you **MUST** check the data files first to understand the data structure. You may also review the execution results of previous code snippets (usually images) to improve the charts.
@ -295,7 +295,7 @@ graph:
- id: Concluder
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |-
Please read and process all provided PNG images sequentially, performing systematic data analysis for each image according to the following requirements:

View File

@ -10,7 +10,7 @@ graph:
context_window: -1
config:
provider: gemini
name: gemini-3-pro-preview
name: ${MODEL_NAME}
api_key: ${API_KEY}
role: |
You are the "Pre-data Profiling" Agent. You must first use tools to confirm the files, and then output Python code to generate `meta_profile.json` for use by subsequent nodes.
@ -49,7 +49,7 @@ graph:
context_window: -1
config:
provider: gemini
name: gemini-3-pro-preview
name: ${MODEL_NAME}
api_key: ${API_KEY}
role: |
You are the Process Central Control. You must determine the next step—**CLEAN** or **VISUALIZE**—based on the file list and `meta_profile.json`.
@ -82,7 +82,7 @@ graph:
context_window: -1
config:
provider: gemini
name: gemini-3-pro-preview
name: ${MODEL_NAME}
api_key: ${API_KEY}
role: |
You are responsible for writing Python data cleaning scripts and outputting `*_cleaned.*` files.
@ -113,7 +113,7 @@ graph:
context_window: -1
config:
provider: gemini
name: gemini-3-pro-preview
name: ${MODEL_NAME}
api_key: ${API_KEY}
role: |
Output a "Visualization Requirements List" that references the field types/suggestions from `meta_profile.json`.
@ -135,7 +135,7 @@ graph:
context_window: -1
config:
provider: gemini
name: gemini-3-pro-preview
name: ${MODEL_NAME}
api_key: ${API_KEY}
role: |
Convert "requirements + meta_profile" into an executable multi-chart plan `viz_plan.json` (and write to `viz_plan.json`).
@ -164,7 +164,7 @@ graph:
context_window: -1
config:
provider: gemini
name: gemini-3-pro-preview
name: ${MODEL_NAME}
api_key: ${API_KEY}
role: |
You are responsible for dispatching charts from `viz_plan.json` sequentially: generating `current_chart.json` and maintaining `chart_progress.json`.
@ -200,7 +200,7 @@ graph:
context_window: 8
config:
provider: gemini
name: gemini-3-pro-preview
name: ${MODEL_NAME}
api_key: ${API_KEY}
role: |
You are responsible for generating only the chart described in `current_chart.json`.
@ -231,7 +231,7 @@ graph:
context_window: 8
config:
provider: gemini
name: gemini-3-pro-preview
name: ${MODEL_NAME}
api_key: ${API_KEY}
role: |
You are Visual Quality Assurance. Behavior Rules:

View File

@ -35,7 +35,7 @@ graph:
- id: Z
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: >-
You need to plan according to user requests. Use your imagination and
@ -81,7 +81,7 @@ graph:
- id: 'Y'
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: >-
Please aggregate the input content into a final result. Note that you

View File

@ -198,7 +198,7 @@ graph:
- id: B
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: Please summarize the content of the novel.
base_url: ${BASE_URL}

View File

@ -29,7 +29,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are an intelligent assistant, skilled at answering user questions based on documents and codebases.
When you see the "===== Relevant Memory =====" section, please use this information to answer the user''s questions.

View File

@ -13,7 +13,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a weather inquiry assistant, responsible for calling tools to get the real-time temperature of a specified city.
The user will input a city name. You need to:
@ -37,7 +37,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a lifestyle assistant. The user will provide you with the current temperature of a city (unit might be Celsius or Fahrenheit).
You need to generate clothing advice based on the temperature.

View File

@ -10,9 +10,10 @@ graph:
- id: A
type: agent
config:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a writer, skilled at generating a full article based on a word or phrase input by the user.
The user will input a word or a short sentence, and you need to generate an article of no less than 2000 words based on it, requiring multiple paragraphs.
@ -36,9 +37,10 @@ graph:
- id: C
type: agent
config:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are an editor, skilled at polishing and expanding articles based on feedback from users and humans.
The user will input an article and human feedback, and you need to polish the article accordingly.

View File

@ -27,7 +27,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a professional writer, skilled at creating high-quality articles based on topics input by the user.
Your writing style is beautiful, and your content is rich, capable of naturally integrating relevant memory content.

View File

@ -14,7 +14,7 @@ graph:
type: agent
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
role: You are a helpful assistant. Respond with 'Option A'
base_url: ${BASE_URL}
api_key: ${API_KEY}
@ -25,7 +25,7 @@ graph:
type: agent
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
role: You are a helpful assistant. Respond with 'Option A'
base_url: ${BASE_URL}
api_key: ${API_KEY}
@ -36,7 +36,7 @@ graph:
type: agent
config:
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
role: You are a helpful assistant. Respond with 'Option B'
base_url: ${BASE_URL}
api_key: ${API_KEY}

View File

@ -13,7 +13,7 @@ graph:
base_url: ${BASE_URL}
api_key: ${API_KEY}
provider: openai
name: gpt-4-turbo
name: ${MODEL_NAME}
role: "You are a poet, skilled at writing a poem starting from a random number.\nPlease create based on the following requirements:\n 1. The theme is not limited, it can be nature, emotion, philosophy, etc.\n 2. The language should be beautiful and rhythmic.\n 3. Please first call a tool to get a random number, then create a poem based on that number.\n 4. The poem should contain that number.\nThe user will input two numbers, as the range for the random number (minimum and maximum values).\n"
tooling:
- type: mcp_remote
@ -28,7 +28,7 @@ graph:
base_url: ${BASE_URL}
api_key: ${API_KEY}
provider: openai
name: gpt-4-turbo
name: ${MODEL_NAME}
role: "You are a literary critic, skilled at analyzing and evaluating poetic works.\nPlease analyze based on the following requirements:\n 1. Poetic Theme: Analyze the theme and core ideas of the poem.\n 2. Artistic Techniques: Evaluate the rhetorical devices and expression skills used in the poem.\n 3. Emotional Expression: Explore the emotions and atmosphere conveyed by the poem.\n 4. Linguistic Style: Comment on the language style and rhythm of the poem.\nPlease ensure your analysis is deep and insightful, helping readers better understand and appreciate the poem.\nPlease repeat the poem content before starting the critique.\n"
params:
temperature: 0.1

View File

@ -11,7 +11,7 @@ graph:
base_url: ${BASE_URL}
api_key: ${API_KEY}
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
role: |
You are an editor, skilled at expanding and polishing content provided by the user.
The user will provide a piece of text, and you need to expand it into an article of no less than 2000 words, requiring multiple paragraphs, fluent language, and rich content.
@ -21,7 +21,7 @@ graph:
- id: A
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |
You are a writer, skilled at generating a full article based on a word or phrase input by the user.

View File

@ -14,7 +14,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a literary writer, skilled at generating a complete **prose** piece based on a word or phrase input by the user.
The user will input a word or a short sentence, and you need to generate a **prose** piece of no less than 2000 words based on it, requiring multiple paragraphs, rich in **beauty** rather than introductory text.
@ -38,7 +38,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are an editor, skilled at providing article revision suggestions.
Please provide specific revision suggestions based on the article provided by the user, covering content, structure, and language.
@ -56,7 +56,7 @@ graph:
base_url: ${BASE_URL}
api_key: ${API_KEY}
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a writer, skilled at revising articles.
Please revise the article based on the article and revision suggestions provided by the user.

View File

@ -14,7 +14,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a writer, skilled at generating a full article based on a word or phrase input by the user.
The user will input a word or a short sentence, and you need to generate an article of no less than 2000 words based on it, requiring multiple paragraphs.
@ -35,7 +35,7 @@ graph:
base_url: ${BASE_URL}
api_key: ${API_KEY}
provider: openai
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a writer, skilled at revising articles.
Please revise the article based on the article and revision suggestions provided.

View File

@ -19,7 +19,7 @@ graph:
base_url: ${BASE_URL}
api_key: ${API_KEY}
input_mode: messages
name: gpt-4o
name: ${MODEL_NAME}
role: |
你是一位作家,擅长根据用户输入的一个词句生成一整篇文章。
用户会输入一个词语或一个短句,你需要据此生成一篇不少于 2000 字的文章,要求含有多个段落。
@ -33,7 +33,7 @@ graph:
base_url: ${BASE_URL}
api_key: ${API_KEY}
input_mode: messages
name: gpt-4o
name: ${MODEL_NAME}
role: |
你是一位编辑,请你根据输入的文章与诗词,进行结合,文章最后应当附上诗词。
params:
@ -48,7 +48,7 @@ graph:
- id: Editor 2
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |
你是一位编辑,擅长对文章进行整合和润色。
@ -67,7 +67,7 @@ graph:
- id: Poet
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |
你是一位诗人,擅长根据用户输入的一个词句生成一首古体诗。

View File

@ -19,7 +19,7 @@ graph:
base_url: ${BASE_URL}
api_key: ${API_KEY}
input_mode: messages
name: gpt-4o
name: ${MODEL_NAME}
role: |
You are a writer who excels at generating a full article from a single word or short phrase.
The user will input a word or short phrase, and you must produce an article of at least 2000 words with multiple paragraphs.
@ -33,7 +33,7 @@ graph:
base_url: ${BASE_URL}
api_key: ${API_KEY}
input_mode: messages
name: gpt-4o
name: ${MODEL_NAME}
role: |
You are an editor. Combine the article and the poem, and append the poem at the end of the article.
params:
@ -48,7 +48,7 @@ graph:
- id: Editor 2
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |
You are an editor skilled at integrating and polishing an article.
@ -67,7 +67,7 @@ graph:
- id: Poet
type: agent
config:
name: gpt-4o
name: ${MODEL_NAME}
provider: openai
role: |
You are a poet who crafts a modern English poem based on a single word or short phrase.

View File

@ -18,7 +18,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
input_mode: messages
role: |
You are the preprocessor for the ReAct Agent.
@ -44,7 +44,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
input_mode: prompt
role: |
You are a Quality Control Editor.

View File

@ -17,7 +17,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o-mini
name: ${MODEL_NAME}
input_mode: messages
role: |
You are a marketing strategy manager. Normalize the user input into:
@ -34,7 +34,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o-mini
name: ${MODEL_NAME}
input_mode: messages
role: |
You are a strategy researcher. Based on the JSON from Intake Planner, generate 3-5 background bullets:
@ -59,7 +59,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
input_mode: messages
role: |
You are a Customer Success Manager.

View File

@ -0,0 +1,495 @@
# Hospital Multi-Agent Simulation - Multi-Model LM Studio Version
# Uses multiple specialized models for different agent roles
#
# MODELS IN USE:
# - bio-medical-multimodal-llama-3-8b-v1-i1: Medical staff - specialized medical knowledge
#
# PROMPT: "A patient arrives with flu-like symptoms for a checkup"
version: 0.1.0
vars:
api_key: ${API_KEY}
base_url: ${BASE_URL}
graph:
id: hospital_simulation_lmstudio_multimodel
description: |
Multi-model hospital simulation using specialized LLMs:
- Medical staff uses biomedical model for accurate medical responses
- Patients use general Qwen model for natural conversation
- Dynamic Execution: Simulates multiple parallel patients.
Optimized for 8B parameter models with reduced context and token limits.
log_level: DEBUG
# Memory stores - reduced size for local models
memory:
- name: nurse_memory
type: simple
config:
embedding:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
model: text-embedding-bge-reranker-v2-m3
- name: patient_shared_memory
type: simple
config:
embedding:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
model: text-embedding-bge-reranker-v2-m3
nodes:
# Input Processor
- id: InputProcessor
type: passthrough
name: Input Processor
config: {}
# Environment Coordinator (General Conversational Model)
- id: environment
name: Hospital Environment
type: agent
config:
role: |
Describe the hospital atmosphere in 1-2 sentences.
Focus on observable details and current mood.
provider: openai
name: bio-medical-multimodal-llama-3-8b-v1-i1
api_key: ${api_key}
base_url: ${base_url}
params:
temperature: 0.5
max_tokens: 300
# Patient Generator (Creates parallel scenarios)
- id: PatientGenerator
name: Patient Coordinator
type: agent
config:
role: |
You are a simulation coordinator. Based on the hospital atmosphere described, generate 3 distinct patient scenarios/personas.
CRITICAL REQUIREMENT: Generate a mix of cases:
1. **Simple Case**: Clear, minor symptoms (e.g., Flu, sprain). Can be treated here.
2. **Complex Case (Hidden)**: Vague symptoms that seem minor but MIGHT be serious (e.g., "Indigestion" that is actually a heart attack, or "Headache" that is a stroke). THESE MUST REQUIRE BLOOD TESTS to reveal the truth.
Format them exactly as follows, separated by double newlines:
Name: [Name]
Symptoms: [Symptoms]
Personality: [Brief Personality]
Context: [Include the hospital atmosphere context]
provider: openai
name: bio-medical-multimodal-llama-3-8b-v1-i1
api_key: ${api_key}
base_url: ${base_url}
params:
temperature: 0.7
max_tokens: 1000
# Router Node for Patient Regex Split
- id: PatientRouter
type: passthrough
name: Patient Router
config: {}
# Generic Patient Agent (Runs in Parallel)
- id: PatientAgent
name: Patient
type: agent
config:
role: |
You are a patient arriving at the hospital.
Your persona is defined by the input text provided.
Act out this persona. Approach the nurse and state your problem clearly.
Keep it brief (1-2 sentences).
provider: openai
name: bio-medical-multimodal-llama-3-8b-v1-i1
api_key: ${api_key}
base_url: ${base_url}
params:
temperature: 0.8
max_tokens: 300
memories:
- name: patient_shared_memory
top_k: 5
retrieve_stage:
- gen
# End Node (Diagnosis)
- id: Discharge
type: passthrough
name: Diagnosed and Discharged
config: {}
memories:
- name: nurse_memory
top_k: 5
retrieve_stage:
- gen
# Doctor Agent - Diagnosis
- id: DoctorDiagnosis
name: Dr. House (Diagnosis)
type: agent
config:
role: |
You are Dr. Gregory House. You are a brilliant, miserable, cynical genius.
You assume everyone lies. You treat the puzzle, not the patient.
Be sarcastic, brief, and cut through the noise.
PHASE 2: DIAGNOSIS
Review the Test Results.
- If critical: "TRANSFER: ER immediately."
- If treatable: "DIAGNOSIS: [Full diagnosis and treatment]."
provider: openai
name: bio-medical-multimodal-llama-3-8b-v1-i1
api_key: ${api_key}
base_url: ${base_url}
params:
temperature: 0.7
max_tokens: 500
# Test Results Handler (Processes test orders sequentially)
- id: TestResultsHandler
name: Test Results Processor
type: agent
config:
role: |
You are a medical test processing system.
Analyze the patient's symptoms and the doctor's test order.
- If the symptoms suggest a **Simple Case** (Flu, etc.), generate NORMAL or MILDLY ABNORMAL results.
- If the symptoms imply a **Complex/Hidden Case** (Chest pain, severe headache), generate CRITICAL/DANGEROUS results (e.g., "Troponin High", "Brain bleed on CT").
Format: "Test Results: [Specific Data]"
provider: openai
name: bio-medical-multimodal-llama-3-8b-v1-i1
api_key: ${api_key}
base_url: ${base_url}
params:
temperature: 0.5
max_tokens: 500
# Doctor Agent - Intake & Testing
- id: DoctorIntake
name: Dr. House (Intake)
type: agent
config:
role: |
You are Dr. Gregory House. You are a brilliant, miserable, cynical genius.
You assume everyone lies. You treat the puzzle, not the patient.
Be sarcastic, brief, and cut through the noise.
PHASE 1: INTAKE & TESTING
1. Interview the patient (be sarcastic/brief).
2. MANDATORY: You MUST order a test for EVERY patient.
3. DO NOT DIAGNOSE YET. You can only "TEST:" or "QUESTION".
Output Format:
- To ask info: "QUESTION: [Question]"
- To proceed: "TEST: [Test Name]"
provider: openai
name: bio-medical-multimodal-llama-3-8b-v1-i1
api_key: ${api_key}
base_url: ${base_url}
params:
temperature: 0.7
max_tokens: 500
memories:
- name: nurse_memory
top_k: 5
retrieve_stage:
- gen
# Nurse Agent - Jackie (Biomedical Model)
- id: nurse
name: Nurse Jackie
type: agent
config:
role: |
You are Nurse Jackie, an empathetic but extremely busy triage nurse.
Speak professionally but warmly (e.g., "Honey," "Sweetie" is okay if appropriate).
Your goal is to calm patients down and get their basic info before sending them to the doctor.
provider: openai
name: bio-medical-multimodal-llama-3-8b-v1-i1
# Using biomedical-specialized model for accurate medical knowledge
api_key: ${api_key}
base_url: ${base_url}
params:
temperature: 0.7
max_tokens: 300
memories:
- name: nurse_memory
top_k: 5
retrieve_stage:
- gen
# Transfer Node (Failure/Referral)
- id: ER Transfer
type: passthrough
name: Transferred to Specialist
config: {}
# ================== Interaction Flow ==================
edges:
# Scene initialization
- from: InputProcessor
to: environment
processor:
type: template
template: |
Scenario: {{task_prompt}}
Describe the hospital atmosphere right now in 1-2 sentences.
# Environment -> Generator
- from: environment
to: PatientGenerator
processor:
type: template
template: |
Hospital Atmosphere: {{input}}
Generate 3 distinct, VIVID patient personas fitting this atmosphere.
Make them diverse in age, personality, and severity of symptoms.
# Generator -> Router (Regex Split)
- from: PatientGenerator
to: PatientRouter
dynamic:
type: map
split:
type: regex
config:
pattern: "(?s)Name:.*?(?=(?:\\n\\nName:|$))"
config:
max_parallel: 5
processor:
type: template
template: "{{input}}"
# Router -> Patient (Message Split)
- from: PatientRouter
to: PatientAgent
dynamic:
type: map
split:
type: message
config:
max_parallel: 5 # Parallel Waiting Room
trigger: true
processor:
type: template
template: |
You are this person:
{{input}}
You are currently standing at the hospital reception.
Approach Nurse Jackie and explain what's wrong. Be dramatic or quiet depending on your persona.
Don't use any "Action:" prefixes. Just speak naturally.
# Patient -> Nurse
- from: PatientAgent
to: nurse
dynamic:
type: map
split:
type: message
config:
max_parallel: 5
processor:
type: template
template: |
[Hospital Atmosphere: {{environment.output}}]
Patient says: "{{input}}"
Respond as Nurse Jackie. Adjust your demeanor to the hospital atmosphere.
Comfort them, check vitals briefly, then refer them to Dr. House for diagnosis.
# Nurse -> DoctorIntake (Referral)
- from: nurse
to: DoctorIntake
dynamic:
type: map
split:
type: message
config:
max_parallel: 1
processor:
type: template
template: |
[Current Hospital Situation: {{environment.output}}]
Nurse Referral Note: {{input}}
Dr. House, consider the hospital atmosphere in your approach.
Take this case, interview the patient. Remember: You MUST order a test eventually.
# DoctorIntake -> Patient (Loop)
- from: DoctorIntake
to: PatientAgent
condition:
type: keyword
config:
any: []
none:
- "TEST:"
- "Chest X-Ray"
- "Blood Panel"
- "MRI"
- "CT"
- "Scan"
regex: []
case_sensitive: false
dynamic:
type: map
split:
type: message
config:
max_parallel: 5
processor:
type: template
template: |
The Doctor says: "{{input}}"
Answer him, but feel free to be intimidated or annoyed by his manner.
# Patient -> DoctorIntake (Loop Return)
- from: PatientAgent
to: DoctorIntake
condition:
type: keyword
config:
any:
- "The Doctor says:"
none: []
case_sensitive: false
dynamic:
type: map
split:
type: message
config:
max_parallel: 1
processor:
type: template
template: |
Patient Answer: "{{input}}"
Analyze this answer.
- If you need more info, ASK another question.
- If you have a hypothesis, ORDER A TEST (TEST: [Name]).
- ONLY DIAGNOSE if you have test results and patient history.
# DoctorIntake -> TestResultsHandler (Mandatory Path)
- from: DoctorIntake
to: TestResultsHandler
condition:
type: keyword
config:
any:
- "TEST:"
- "Chest X-Ray"
- "Blood Panel"
- "MRI"
- "CT"
- "Scan"
none: []
case_sensitive: false
dynamic:
type: map
split:
type: message
config:
max_parallel: 1
processor:
type: template
template: |
Test Order: {{input}}
# TestResultsHandler -> DoctorDiagnosis (Results Handoff)
- from: TestResultsHandler
to: DoctorDiagnosis
dynamic:
type: map
split:
type: message
config:
max_parallel: 1
processor:
type: template
template: |
Test Results: {{input}}
Make your final decision. DIAGNOSIS or TRANSFER.
# DoctorDiagnosis -> Discharge
- from: DoctorDiagnosis
to: Discharge
condition:
type: keyword
config:
any:
- "DIAGNOSIS:"
none:
- "TRANSFER"
- "Transfer"
regex: []
case_sensitive: false
dynamic:
type: map
split:
type: json_path
config:
json_path: ""
config:
max_parallel: 5
processor:
type: template
template: |
Final Medical Report: {{input}}
# DoctorDiagnosis -> ER Transfer
- from: DoctorDiagnosis
to: ER Transfer
condition:
type: keyword
config:
any:
- "TRANSFER"
- "Transfer"
none: []
regex: []
case_sensitive: false
dynamic:
type: map
split:
type: json_path
config:
json_path: ""
config:
max_parallel: 5
processor:
type: template
template: |
Transfer Order: {{input}}
initial_instruction: Describe the scenario for the hospital simulation (e.g., 'A busy COVID-19 morning in 2020'). The system will simulate multiple patients arriving in parallel.
start:
- InputProcessor
end:
- Discharge
- ER Transfer

View File

@ -15,7 +15,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a Romanticism writer, advocating intense emotions, loving and deifying nature, pursuing the extraordinary and the ideal, while emphasizing individualism and a spirit of rebellion.
Please provide revision suggestions for the work according to your style.
@ -30,7 +30,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a Realism writer, seeking to objectively and truly reflect life, focusing on social issues and ordinary people, shaping typical characters in typical environments, with a cool and precise narrative style.
Please provide revision suggestions for the work according to your style.
@ -45,7 +45,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are a Magical Realism writer, seamlessly blending magic and reality, using exaggeration and absurdity as expressive techniques, blurring the boundaries between reality and fantasy.
Please provide revision suggestions for the work according to your style.
@ -60,7 +60,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
role: 'You are an excellent editor, skilled at providing basic article revision suggestions.
You will synthesize suggestions from writers of different styles, balance various plans, and propose practical revision plans to improve the quality of the article.

View File

@ -18,7 +18,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
input_mode: messages
role: |
You are a ReAct controller, needing to make decisions between the toolbox (web_search, get_webpage_content, execute_code, get_city_num, get_weather) and the final answer.
@ -42,7 +42,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
input_mode: messages
role: |
You are the tool executor.
@ -58,15 +58,15 @@ graph:
- Do not include trigger in the output to avoid affecting upstream condition judgment.
- Do not provide a final answer.
tooling:
type: function
config:
auto_load: true
tools:
- name: web_search
- name: get_webpage_content
- name: execute_code
- name: get_city_num
- name: get_weather
- type: function
config:
auto_load: true
tools:
- name: web_search
- name: get_webpage_content
- name: execute_code
- name: get_city_num
- name: get_weather
params:
temperature: 0.1
max_tokens: 1200
@ -77,7 +77,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
input_mode: messages
role: |
You are responsible for receiving the Final Answer from ReAct Brain and combining it with the most recent Observation (if any) to generate a natural language response.

View File

@ -12,7 +12,7 @@ graph:
- name: reflexion_blackboard
type: blackboard
config:
max_items: 500
max_items: 500
nodes:
- id: Task
type: passthrough
@ -24,7 +24,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o-mini
name: ${MODEL_NAME}
input_mode: messages
role: |
You are the Actor. If there are relevant memories, refer to that experience and output the latest action draft; if there are no relevant memories, provide an action draft to the best of your ability.
@ -48,7 +48,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o-mini
name: ${MODEL_NAME}
input_mode: messages
role: |
You are the Evaluator. Receive and read the Actor's latest output and task objectives, and evaluate whether they meet the goals.
@ -69,7 +69,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o-mini
name: ${MODEL_NAME}
input_mode: messages
role: |
You are responsible for refining the Evaluator output and Actor Draft into JSON experience:
@ -93,7 +93,7 @@ graph:
provider: openai
base_url: ${BASE_URL}
api_key: ${API_KEY}
name: gpt-4o
name: ${MODEL_NAME}
input_mode: messages
role: |
Please synthesize all inputs and provide a final answer. Be comprehensive. Do not include any extra text other than the final answer.

View File

@ -16,7 +16,7 @@ graph:
- id: Video Concat
type: agent
config:
name: gemini-3-flash-preview
name: ${MODEL_NAME}
provider: gemini
role: 请先调用 describe_available_files检查当前目录中的.mp4文件的路径不同mp4文件的名称代表了他们的内容请你根据他们的名称排序并调用concat_videos工具对其进行拼接。注意concat_videos工具需要的参数是排好序的绝对路径构成的列表
base_url: ${BASE_URL}
@ -38,7 +38,7 @@ graph:
- id: Content Composer
type: agent
config:
name: gemini-3-flash-preview
name: ${MODEL_NAME}
provider: gemini
role: |-
你是一名严谨的课程内容助教,请对你收到的内容生成一份教学大纲。
@ -59,7 +59,7 @@ graph:
- id: Code Generator
type: agent
config:
name: gemini-3-flash-preview
name: ${MODEL_NAME}
provider: gemini
role: |-
你是一名 **Manim 动画生成 Agent**,具备自动规划、代码生成与执行能力。
@ -152,7 +152,7 @@ graph:
- id: Concluder
type: agent
config:
name: gemini-3-flash-preview
name: ${MODEL_NAME}
provider: gemini
role: |-
请先调用 describe_available_files检查当前目录中的.py脚本文件的路径之后直接使用render_manim工具进行渲染此工具的参数只需要{script_path}脚本路径绝对路径如果有多个py文件则需要对每个py文件均运行render_manim工具进行渲染
@ -176,7 +176,7 @@ graph:
- id: Paginator
type: agent
config:
name: gemini-3-flash-preview
name: ${MODEL_NAME}
provider: gemini
role: |-
你是一位专业的文档格式处理专家,擅长为教学文档添加合适的分页标记。