shinka-backup / eval_agent /design_draft /ARCHITECTURE_ZH.md
JustinTX's picture
Add files using upload-large-folder tool
3f6526a verified

OpenHands Agent System Prompt ๆžถๆž„่ฏดๆ˜Ž

๐Ÿ—๏ธ ๆ•ดไฝ“ๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      OpenHands Agent                             โ”‚
โ”‚                                                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚              System Prompt (Jinja2 ๆจกๆฟ)                  โ”‚  โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ <ROLE>          Agent ็š„่ง’่‰ฒๅฎšไน‰                    โ”‚  โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ <PRINCIPLES>    ๆ ธๅฟƒ่กŒไธบๅŽŸๅˆ™                       โ”‚  โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ <WORKFLOW>      ๅทฅไฝœๆต็จ‹                           โ”‚  โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ <CONSTRAINTS>   ็บฆๆŸๆกไปถ                           โ”‚  โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ {% if custom_instructions %}                       โ”‚  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚   {{ custom_instructions }}  โ† ๅ˜้‡ๆณจๅ…ฅ            โ”‚  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ {% endif %}                                        โ”‚  โ”‚  โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚                        Tools                              โ”‚  โ”‚
โ”‚  โ”‚  โ€ข TerminalTool      - ๆ‰ง่กŒๅ‘ฝไปค                          โ”‚  โ”‚
โ”‚  โ”‚  โ€ข FileEditorTool    - ็ผ–่พ‘ๆ–‡ไปถ                          โ”‚  โ”‚
โ”‚  โ”‚  โ€ข TaskTrackerTool   - ่ทŸ่ธชไปปๅŠก                          โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚                         LLM                               โ”‚  โ”‚
โ”‚  โ”‚  Model: vertex_ai/gemini-2.5-flash                        โ”‚  โ”‚
โ”‚  โ”‚  API Key: ***                                             โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚   Conversation   โ”‚
                    โ”‚   (ๅฏน่ฏ็ฎก็†ๅ™จ)    โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚    Workspace     โ”‚
                    โ”‚   (ๅทฅไฝœ็›ฎๅฝ•)      โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“Š ่‡ชๅฎšไน‰ System Prompt ็š„ไธ‰ๅฑ‚ๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ็ฌฌ 1 ๅฑ‚: Agent ๅˆๅง‹ๅŒ–ๅ‚ๆ•ฐ                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                โ”‚
โ”‚  agent = Agent(                                                โ”‚
โ”‚      llm=llm,                                                  โ”‚
โ”‚      tools=tools,                                              โ”‚
โ”‚      system_prompt_filename="custom.j2",  โ† ๆŒ‡ๅฎšๆจกๆฟๆ–‡ไปถ      โ”‚
โ”‚      system_prompt_kwargs={...}            โ† ไผ ้€’ๅ˜้‡         โ”‚
โ”‚  )                                                             โ”‚
โ”‚                                                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ็ฌฌ 2 ๅฑ‚: Jinja2 ๆจกๆฟๆ–‡ไปถ (custom.j2)                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                โ”‚
โ”‚  You are an AI agent...                                        โ”‚
โ”‚                                                                โ”‚
โ”‚  <ROLE>                                                        โ”‚
โ”‚  * Your primary role is...                                     โ”‚
โ”‚  </ROLE>                                                       โ”‚
โ”‚                                                                โ”‚
โ”‚  {% if custom_instructions %}      โ† ๆกไปถๅˆคๆ–ญ                 โ”‚
โ”‚  <CUSTOM>                                                      โ”‚
โ”‚  {{ custom_instructions }}         โ† ๅ˜้‡ๅผ•็”จ                 โ”‚
โ”‚  </CUSTOM>                                                     โ”‚
โ”‚  {% endif %}                                                   โ”‚
โ”‚                                                                โ”‚
โ”‚  {% if project_name %}                                         โ”‚
โ”‚  <CONTEXT>                                                     โ”‚
โ”‚  Project: {{ project_name }}                                   โ”‚
โ”‚  Task: {{ task_type }}                                         โ”‚
โ”‚  </CONTEXT>                                                    โ”‚
โ”‚  {% endif %}                                                   โ”‚
โ”‚                                                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ็ฌฌ 3 ๅฑ‚: ๆธฒๆŸ“ๅŽ็š„ๆœ€็ปˆ Prompt (ๅ‘้€็ป™ LLM)                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                โ”‚
โ”‚  You are an AI agent...                                        โ”‚
โ”‚                                                                โ”‚
โ”‚  <ROLE>                                                        โ”‚
โ”‚  * Your primary role is...                                     โ”‚
โ”‚  </ROLE>                                                       โ”‚
โ”‚                                                                โ”‚
โ”‚  <CUSTOM>                                                      โ”‚
โ”‚  Focus on code evolution and optimization...                   โ”‚
โ”‚  </CUSTOM>                                                     โ”‚
โ”‚                                                                โ”‚
โ”‚  <CONTEXT>                                                     โ”‚
โ”‚  Project: ShinkaEvolve                                         โ”‚
โ”‚  Task: Code Evolution                                          โ”‚
โ”‚  </CONTEXT>                                                    โ”‚
โ”‚                                                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
                      ๅ‘้€็ป™ LLM ๆ‰ง่กŒ

๐Ÿ”„ ๆ•ฐๆฎๆต็จ‹ๅ›พ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  User Message   โ”‚ "่ฏทไผ˜ๅŒ–่ฟ™ๆฎตไปฃ็ "
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Conversation                              โ”‚
โ”‚  โ€ข ็ฎก็†ๅฏน่ฏๅކๅฒ                                               โ”‚
โ”‚  โ€ข ๆ ผๅผๅŒ–็”จๆˆทๆถˆๆฏ                                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       Agent                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚
โ”‚  โ”‚ System Prompt (่‡ชๅฎšไน‰็š„ๆผ”ๅŒ– prompt)                  โ”‚   โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค   โ”‚
โ”‚  โ”‚ User Message: "่ฏทไผ˜ๅŒ–่ฟ™ๆฎตไปฃ็ "                       โ”‚   โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค   โ”‚
โ”‚  โ”‚ Conversation History: [...]                          โ”‚   โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        LLM                                   โ”‚
โ”‚  โ€ข ็†่งฃๆŒ‡ไปคๅ’ŒไธŠไธ‹ๆ–‡                                           โ”‚
โ”‚  โ€ข ็”Ÿๆˆๅ“ๅบ”                                                   โ”‚
โ”‚  โ€ข ๅ†ณๅฎšไฝฟ็”จๅ“ชไบ›ๅทฅๅ…ท                                           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   Tool Execution                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”‚
โ”‚  โ”‚ TerminalTool โ”‚  โ”‚FileEditorToolโ”‚  โ”‚TaskTracker   โ”‚     โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค     โ”‚
โ”‚  โ”‚ ่ฟ่กŒๆต‹่ฏ•     โ”‚  โ”‚ ไฟฎๆ”นไปฃ็      โ”‚  โ”‚ ๅˆ›ๅปบไปปๅŠก     โ”‚     โ”‚
โ”‚  โ”‚ ๆฃ€ๆŸฅๆ€ง่ƒฝ     โ”‚  โ”‚ ไฟๅญ˜ๆ–‡ไปถ     โ”‚  โ”‚ ๆ›ดๆ–ฐ็Šถๆ€     โ”‚     โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   Tool Results                               โ”‚
โ”‚  โ€ข ๅ‘ฝไปค่พ“ๅ‡บ                                                   โ”‚
โ”‚  โ€ข ๆ–‡ไปถไฟฎๆ”น็กฎ่ฎค                                               โ”‚
โ”‚  โ€ข ไปปๅŠก็Šถๆ€                                                   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   LLM (ๅ†ๆฌกๅค„็†)                             โ”‚
โ”‚  โ€ข ๅˆ†ๆžๅทฅๅ…ทๆ‰ง่กŒ็ป“ๆžœ                                           โ”‚
โ”‚  โ€ข ็”Ÿๆˆๆœ€็ปˆๅ“ๅบ”                                               โ”‚
โ”‚  โ€ข ๆˆ–ๅ†ณๅฎšๆ‰ง่กŒๆ›ดๅคšๅทฅๅ…ท                                         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  User Response  โ”‚ "ไปฃ็ ๅทฒไผ˜ๅŒ–๏ผŒๆ€ง่ƒฝๆๅ‡ 20%"
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽฏ ๅ››็ง่‡ชๅฎšไน‰ๆ–นๆณ•ๅฏนๆฏ”

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๆ–นๆณ• 1: ้ป˜่ฎค Prompt                                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                          โ”‚
โ”‚  Agent(llm, tools)                                                       โ”‚
โ”‚       โ”‚                                                                  โ”‚
โ”‚       โ”œโ”€โ†’ ่‡ชๅŠจไฝฟ็”จ system_prompt.j2                                     โ”‚
โ”‚       โ””โ”€โ†’ ้€š็”จๆŒ‡ไปค๏ผŒ้€‚็”จไบŽๅคงๅคšๆ•ฐไปปๅŠก                                     โ”‚
โ”‚                                                                          โ”‚
โ”‚  โœ“ ๆœ€็ฎ€ๅ•                                                                โ”‚
โ”‚  โœ— ๆ— ๆณ•่‡ชๅฎšไน‰                                                            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๆ–นๆณ• 2: ้€‰ๆ‹ฉๅ†…็ฝฎๆจกๆฟ                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                          โ”‚
โ”‚  Agent(                                                                  โ”‚
โ”‚      llm, tools,                                                         โ”‚
โ”‚      system_prompt_filename="system_prompt_planning.j2"                 โ”‚
โ”‚  )                                                                       โ”‚
โ”‚       โ”‚                                                                  โ”‚
โ”‚       โ”œโ”€โ†’ ไฝฟ็”จ OpenHands ้ข„ๅฎšไน‰็š„ๆจกๆฟ                                   โ”‚
โ”‚       โ””โ”€โ†’ ้’ˆๅฏน็‰นๅฎšไปปๅŠก็ฑปๅž‹ไผ˜ๅŒ–๏ผˆ่ง„ๅˆ’/ไบคไบ’/้•ฟๆœŸไปปๅŠก็ญ‰๏ผ‰                   โ”‚
โ”‚                                                                          โ”‚
โ”‚  โœ“ ็ฎ€ๅ•๏ผŒๆ— ้œ€่‡ชๅทฑๅ†™ prompt                                              โ”‚
โ”‚  โœ— ้€‰ๆ‹ฉๆœ‰้™๏ผˆๅชๆœ‰ 5-6 ไธชๆจกๆฟ๏ผ‰                                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๆ–นๆณ• 3: ่‡ชๅฎšไน‰ๆจกๆฟ + ๅ˜้‡ๆณจๅ…ฅ (ๆŽจ่)                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                          โ”‚
โ”‚  Agent(                                                                  โ”‚
โ”‚      llm, tools,                                                         โ”‚
โ”‚      system_prompt_filename="custom_evolution_prompt.j2",               โ”‚
โ”‚      system_prompt_kwargs={                                              โ”‚
โ”‚          "custom_instructions": "...",                                   โ”‚
โ”‚          "project_name": "ShinkaEvolve",                                 โ”‚
โ”‚          "task_type": "Code Evolution",                                  โ”‚
โ”‚      }                                                                   โ”‚
โ”‚  )                                                                       โ”‚
โ”‚       โ”‚                                                                  โ”‚
โ”‚       โ”œโ”€โ†’ ไฝฟ็”จ่‡ชๅฎšไน‰ๆจกๆฟๆ–‡ไปถ                                            โ”‚
โ”‚       โ”œโ”€โ†’ ๅŠจๆ€ๆณจๅ…ฅไปปๅŠก็‰นๅฎšไฟกๆฏ                                          โ”‚
โ”‚       โ””โ”€โ†’ ็ตๆดป้€‚ๅบ”ไธๅŒๅœบๆ™ฏ                                              โ”‚
โ”‚                                                                          โ”‚
โ”‚  โœ“ ้ซ˜ๅบฆ็ตๆดป                                                              โ”‚
โ”‚  โœ“ ๅฏ้‡็”จๆจกๆฟ                                                            โ”‚
โ”‚  โœ“ ๅŠจๆ€้…็ฝฎ                                                              โ”‚
โ”‚  โœ— ้œ€่ฆ็ปดๆŠคๆจกๆฟๆ–‡ไปถ                                                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๆ–นๆณ• 4: ๅฎŒๅ…จ่‡ชๅฎšไน‰ๆจกๆฟ                                                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                          โ”‚
โ”‚  Agent(                                                                  โ”‚
โ”‚      llm, tools,                                                         โ”‚
โ”‚      system_prompt_filename="path/to/fully_custom.j2"                   โ”‚
โ”‚  )                                                                       โ”‚
โ”‚       โ”‚                                                                  โ”‚
โ”‚       โ”œโ”€โ†’ ๅฎŒๅ…จไปŽ้›ถ็ผ–ๅ†™ prompt                                           โ”‚
โ”‚       โ”œโ”€โ†’ ้’ˆๅฏน็‰นๅฎš้ข†ๅŸŸๆทฑๅบฆๅฎšๅˆถ                                          โ”‚
โ”‚       โ””โ”€โ†’ ๅŒ…ๅซไธ“ไธš้ข†ๅŸŸ็Ÿฅ่ฏ†                                              โ”‚
โ”‚                                                                          โ”‚
โ”‚  โœ“ ๆœ€ๅคง็ตๆดปๆ€ง                                                            โ”‚
โ”‚  โœ“ ๅฎŒๅ…จๆŽงๅˆถ                                                              โ”‚
โ”‚  โœ— ้œ€่ฆๆทฑๅ…ฅ็†่งฃ prompt engineering                                       โ”‚
โ”‚  โœ— ็ปดๆŠคๆˆๆœฌ้ซ˜                                                            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”ง ๅ…ณ้”ฎ API ๅ‚ๆ•ฐ่ฏฆ่งฃ

Agent ็ฑป็š„ๆ ธๅฟƒๅ‚ๆ•ฐ

class Agent:
    def __init__(
        self,
        llm: LLM,                              # LLM ้…็ฝฎ
        tools: List[Tool],                     # ๅฏ็”จๅทฅๅ…ทๅˆ—่กจ
        
        # System Prompt ็›ธๅ…ณ
        system_prompt_filename: str = "system_prompt.j2",
        system_prompt_kwargs: Dict[str, Any] = {},
        
        # ๅ…ถไป–้…็ฝฎ
        security_policy_filename: str = "security_policy.j2",
        agent_context: Optional[AgentContext] = None,
        condenser: Optional[CondenserBase] = None,
        critic: Optional[CriticBase] = None,
        
        # ๅทฅๅ…ท่ฟ‡ๆปค
        filter_tools_regex: Optional[str] = None,
        include_default_tools: List[str] = [],
        
        # MCP ้…็ฝฎ
        mcp_config: Dict[str, Any] = {},
    ):
        ...

ๅ‚ๆ•ฐ่ฏดๆ˜Ž

ๅ‚ๆ•ฐ ็ฑปๅž‹ ้ป˜่ฎคๅ€ผ ่ฏดๆ˜Ž
llm LLM ๅฟ…้œ€ LLM ้…็ฝฎๅฏน่ฑก
tools List[Tool] ๅฟ…้œ€ Agent ๅฏ็”จ็š„ๅทฅๅ…ทๅˆ—่กจ
system_prompt_filename str "system_prompt.j2" Prompt ๆจกๆฟๆ–‡ไปถๅๆˆ–่ทฏๅพ„
system_prompt_kwargs Dict {} ไผ ้€’็ป™ๆจกๆฟ็š„ๅ˜้‡ๅญ—ๅ…ธ
security_policy_filename str "security_policy.j2" ๅฎ‰ๅ…จ็ญ–็•ฅๆจกๆฟๆ–‡ไปถ
agent_context AgentContext None Agent ไธŠไธ‹ๆ–‡ไฟกๆฏ
condenser CondenserBase None ๅฏน่ฏๅŽ‹็ผฉๅ™จ
critic CriticBase None ๆ‰น่ฏ„่€…็ป„ไปถ

๐ŸŽจ Jinja2 ๆจกๆฟ่ฏญๆณ•้€ŸๆŸฅ

ๅŸบๆœฌๅ˜้‡ๅผ•็”จ

{{ variable_name }}              # ็›ดๆŽฅ่พ“ๅ‡บๅ˜้‡
{{ project_name }}               # ่พ“ๅ‡บ: ShinkaEvolve

ๆกไปถๅˆคๆ–ญ

{% if custom_instructions %}
<CUSTOM>
{{ custom_instructions }}
</CUSTOM>
{% endif %}

{% if not use_default %}
ไฝฟ็”จ่‡ชๅฎšไน‰้…็ฝฎ
{% else %}
ไฝฟ็”จ้ป˜่ฎค้…็ฝฎ
{% endif %}

ๅพช็Žฏ

{% for tool in available_tools %}
- {{ tool.name }}: {{ tool.description }}
{% endfor %}

ๅŒ…ๅซๅ…ถไป–ๆจกๆฟ

{% include 'security_policy.j2' %}
{% include 'self_documentation.j2' %}

ๆณจ้‡Š

{# ่ฟ™ๆ˜ฏๆณจ้‡Š๏ผŒไธไผšๅ‡บ็Žฐๅœจๆœ€็ปˆ่พ“ๅ‡บไธญ #}

่ฟ‡ๆปคๅ™จ

{{ text | upper }}               # ่ฝฌๅคงๅ†™
{{ text | trim }}                # ๅŽป้™ค้ฆ–ๅฐพ็ฉบ็™ฝ
{{ items | length }}             # ่Žทๅ–้•ฟๅบฆ

๐Ÿ“ ๆ–‡ไปถ็ป„็ป‡็ป“ๆž„

eval_agent/
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ openhands_sample.py                    
โ”‚   โ””โ”€โ†’ ๅŸบ็ก€็คบไพ‹ๅ’Œ่‡ชๅฎšไน‰็คบไพ‹
โ”‚       โ€ข basic_example()              ไฝฟ็”จ้ป˜่ฎค prompt
โ”‚       โ€ข custom_evolution_example()   ไฝฟ็”จ่‡ชๅฎšไน‰ prompt
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ openhands_custom_prompt_examples.py    
โ”‚   โ””โ”€โ†’ ่ฏฆ็ป†็š„ๆ–นๆณ•ๅฏนๆฏ”ๅ’Œ็คบไพ‹
โ”‚       โ€ข example_custom_prompt_file()        ๆ–นๆณ• 1
โ”‚       โ€ข example_with_kwargs()               ๆ–นๆณ• 2
โ”‚       โ€ข example_builtin_templates()         ๆ–นๆณ• 3
โ”‚       โ€ข example_with_custom_evolution_prompt()  ๆ–นๆณ• 4
โ”‚       โ€ข print_comparison()                  ๆ‰“ๅฐๅฏนๆฏ”
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ custom_evolution_prompt.j2             
โ”‚   โ””โ”€โ†’ ไปฃ็ ๆผ”ๅŒ–ไธ“็”จ็š„ system prompt ๆจกๆฟ
โ”‚       ๅŒ…ๅซ๏ผš
โ”‚       โ€ข <ROLE> ่ง’่‰ฒๅฎšไน‰
โ”‚       โ€ข <CODE_EVOLUTION_PRINCIPLES> ๆผ”ๅŒ–ๅŽŸๅˆ™
โ”‚       โ€ข <MUTATION_STRATEGIES> ๅ˜ๅผ‚็ญ–็•ฅ
โ”‚       โ€ข <WORKFLOW> ๅทฅไฝœๆต็จ‹
โ”‚       โ€ข ๅ˜้‡ๆณจๅ…ฅ็‚น
โ”‚
โ”œโ”€โ”€ ๐Ÿ“– README_CUSTOM_PROMPT.md                
โ”‚   โ””โ”€โ†’ ๅฎŒๆ•ด็š„ไฝฟ็”จๆŒ‡ๅ—๏ผˆไธญๆ–‡๏ผ‰
โ”‚       โ€ข ๅŸบ็ก€ๆฆ‚ๅฟต
โ”‚       โ€ข ๅ››็ง่‡ชๅฎšไน‰ๆ–นๆณ•่ฏฆ่งฃ
โ”‚       โ€ข ๅฎŒๆ•ดไปฃ็ ็คบไพ‹
โ”‚       โ€ข ๆœ€ไฝณๅฎž่ทต
โ”‚       โ€ข ๅธธ่ง้—ฎ้ข˜
โ”‚
โ”œโ”€โ”€ ๐Ÿ“– QUICK_START_ZH.md                      
โ”‚   โ””โ”€โ†’ ๅฟซ้€Ÿๅ…ฅ้—จๆŒ‡ๅ—๏ผˆไธญๆ–‡๏ผ‰
โ”‚       โ€ข ๆ ธๅฟƒ่ฆ็‚น
โ”‚       โ€ข ๆ–นๆณ•ๅฏนๆฏ”
โ”‚       โ€ข ็ซ‹ๅณๅฏ็”จ็š„็คบไพ‹ไปฃ็ 
โ”‚
โ””โ”€โ”€ ๐Ÿ“– ARCHITECTURE_ZH.md (ๆœฌๆ–‡ไปถ)            
    โ””โ”€โ†’ ๆžถๆž„่ฏดๆ˜Žๅ’Œๅฏ่ง†ๅŒ–ๅ›พ่กจ
        โ€ข ๆ•ดไฝ“ๆžถๆž„ๅ›พ
        โ€ข ๆ•ฐๆฎๆต็จ‹ๅ›พ
        โ€ข API ๅ‚ๆ•ฐ่ฏฆ่งฃ

๐Ÿ’ผ ๅฎž้™…ไฝฟ็”จๅœบๆ™ฏ

ๅœบๆ™ฏ 1: ไปฃ็ ไผ˜ๅŒ–ไปปๅŠก

agent = Agent(
    llm=llm,
    tools=[TerminalTool, FileEditorTool],
    system_prompt_filename="custom_evolution_prompt.j2",
    system_prompt_kwargs={
        "custom_instructions": "Focus on performance optimization",
        "task_type": "Performance Optimization",
    }
)

conversation.send_message("Optimize the sorting algorithm in utils.py")

ๅœบๆ™ฏ 2: Bug ไฟฎๅคไปปๅŠก

agent = Agent(
    llm=llm,
    tools=[TerminalTool, FileEditorTool, TaskTrackerTool],
    system_prompt_filename="custom_evolution_prompt.j2",
    system_prompt_kwargs={
        "custom_instructions": "Focus on finding and fixing bugs",
        "task_type": "Bug Fixing",
    }
)

conversation.send_message("Find and fix the memory leak in server.py")

ๅœบๆ™ฏ 3: ไปฃ็ ้‡ๆž„ไปปๅŠก

agent = Agent(
    llm=llm,
    tools=[TerminalTool, FileEditorTool],
    system_prompt_filename="custom_evolution_prompt.j2",
    system_prompt_kwargs={
        "custom_instructions": "Refactor for better readability and maintainability",
        "task_type": "Code Refactoring",
    }
)

conversation.send_message("Refactor the authentication module")

๐ŸŽ“ ๆœ€ไฝณๅฎž่ทตๆ€ป็ป“

โœ… ๆŽจ่ๅšๆณ•

  1. ไฝฟ็”จๆ–นๆณ• 3๏ผˆ่‡ชๅฎšไน‰ๆจกๆฟ + ๅ˜้‡ๆณจๅ…ฅ๏ผ‰ ๅฏนไบŽๅคงๅคšๆ•ฐไธ“ไธšไปปๅŠก
  2. ไฟๆŒๆจกๆฟ็ป“ๆž„ๆธ…ๆ™ฐ ไฝฟ็”จ <SECTION> ๆ ‡็ญพ็ป„็ป‡ๅ†…ๅฎน
  3. ไฝฟ็”จๆกไปถๅ— ่ฎฉๆจกๆฟๆ›ด็ตๆดป๏ผš{% if variable %}
  4. ๆไพ›ๅ…ทไฝ“ๆŒ‡ไปค ่€Œไธๆ˜ฏๆจก็ณŠ็š„ๆ่ฟฐ
  5. ๅŒ…ๅซ็คบไพ‹ ๅœจ prompt ไธญๅฑ•็คบๆœŸๆœ›็š„่กŒไธบ
  6. ็‰ˆๆœฌๆŽงๅˆถ ๅฏน prompt ๆจกๆฟๆ–‡ไปถ่ฟ›่กŒ็‰ˆๆœฌ็ฎก็†
  7. ๆต‹่ฏ•้ชŒ่ฏ ้€š่ฟ‡ๅฎž้™…ไปปๅŠก้ชŒ่ฏ prompt ็š„ๆ•ˆๆžœ

โŒ ้ฟๅ…ๅšๆณ•

  1. ่ฟ‡ไบŽๅ†—้•ฟ ็š„ prompt ๅฏ่ƒฝ้™ไฝŽๆ•ˆๆžœ
  2. ็Ÿ›็›พ็š„ๆŒ‡ไปค ไผš่ฎฉ agent ๅ›ฐๆƒ‘
  3. ็กฌ็ผ–็  ไปปๅŠก็‰นๅฎšไฟกๆฏ๏ผˆๅบ”่ฏฅ็”จๅ˜้‡ๆณจๅ…ฅ๏ผ‰
  4. ๅฟฝ็•ฅๆต‹่ฏ• ็›ดๆŽฅๅœจ็”Ÿไบง็Žฏๅขƒไฝฟ็”จๆœช้ชŒ่ฏ็š„ prompt
  5. ่ฟ‡ๅบฆๅคๆ‚ ็š„ๆกไปถ้€ป่พ‘

๐Ÿ” ่ฐƒ่ฏ•ๆŠ€ๅทง

ๆŸฅ็œ‹ๆœ€็ปˆ Prompt

agent = Agent(...)
print("="*80)
print("Final System Prompt:")
print("="*80)
print(agent.system_message)
print("="*80)

้ชŒ่ฏๆจกๆฟๆธฒๆŸ“

from pathlib import Path
from jinja2 import Template

template_path = Path("custom_evolution_prompt.j2")
template = Template(template_path.read_text())

rendered = template.render(
    custom_instructions="Test instructions",
    project_name="TestProject"
)

print(rendered)

ๆต‹่ฏ• Agent ่กŒไธบ

# ็ฎ€ๅ•ไปปๅŠกๆต‹่ฏ•
conversation.send_message("Describe your role and capabilities")
conversation.run()

# ๆฃ€ๆŸฅๆ˜ฏๅฆ็†่งฃ็‰นๅฎšๆŒ‡ไปค
conversation.send_message("What are your constraints?")
conversation.run()

๐Ÿ“š ็›ธๅ…ณ่ต„ๆบ

  • ๅฎŒๆ•ดๆŒ‡ๅ—: README_CUSTOM_PROMPT.md
  • ๅฟซ้€Ÿๅ…ฅ้—จ: QUICK_START_ZH.md
  • ไปฃ็ ็คบไพ‹: openhands_custom_prompt_examples.py
  • ๅŸบ็ก€็คบไพ‹: openhands_sample.py
  • ๆจกๆฟๆ–‡ไปถ: custom_evolution_prompt.j2

ๅˆ›ๅปบๆ—ฅๆœŸ: 2026-01-29
็‰ˆๆœฌ: 1.0
้กน็›ฎ: ShinkaEvolve - OpenHands Integration