Skip to content

Commit 4d1cc01

Browse files
feat(i18n): add blog translations for OpenSpec agents and P2P acceleration posts
Add translated blog content for German, English-US, Spanish, French, Japanese, Korean, Portuguese Brazil, Russian, and Traditional Chinese locales covering two new blog posts: 'Optimizing OpenSpec with different agents' and 'P2P distribution acceleration practice'. Co-Authored-By: Hagicode <noreply@hagicode.com> Signed-off-by: newbe36524 <newbe36524@qq.com>
1 parent 05cce68 commit 4d1cc01

18 files changed

Lines changed: 4554 additions & 0 deletions
Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
---
2+
title: "Optimierung der OpenSpec-Leistung in verschiedenen Phasen mit verschiedenen Agenten: HagiCode Praxiszusammenfassung"
3+
date: 2026-05-08
4+
tags: [OpenSpec, AI, Agent, Prompt Engineering, HagiCode, Workflow-Optimierung]
5+
---
6+
7+
## Optimierung der OpenSpec-Leistung in verschiedenen Phasen mit verschiedenen Agenten: HagiCode Praxiszusammenfassung
8+
9+
> Generische Prompts können den spezifischen Anforderungen verschiedener Entwicklungsphasen nicht gerecht werden. Durch phasenspezifische Agenten und ein parametrisiertes Template-System kann die KI in jedem Schritt hochwertige Inhalte liefern.
10+
11+
## Hintergrund
12+
13+
OpenSpec ist ein antriebsgesteuertes Entwicklungssystem, das die Erstellung, Prüfung und Implementierung technischer Vorschläge durch einen strukturierten Workflow verwaltet. Die Idee an sich ist gut, aber in der praktischen Anwendung haben wir festgestellt, dass ein einzelner generischer KI-Prompt deutliche Probleme aufweist.
14+
15+
Die Explore-Phase fehlt an Kontextverankerung, die KI-Exploration weicht leicht vom Vorschlagsbereich ab; die Artefakterzeugungsqualität ist instabil, design.md fehlen visuelle Elemente, proposal.md fehlen Codeänderungstabellen, tasks.md enthalten sogar Git-Operationen, die nicht enthalten sein sollten; Verantwortungsgrenzen sind verschwommen, es ist unklar, welche Inhalte verschiedenen Dokumenttypen enthalten sollten; Prompts fehlen Flexibilität und können das KI-Verhalten nicht dynamisch an verschiedene Szenarien anpassen.
16+
17+
Diese Probleme wirken sich direkt auf die Effizienz und Ausgabequalität des OpenSpec-Workflows aus. Eigentlich gibt es keinen anderen Weg, als die Prompt-Templates manuell zu ändern. Dieser Artikel ist eine Aufzeichnung aus dieser Zeit.
18+
19+
## Über HagiCode
20+
21+
Die in diesem Artikel vorgestellte Lösung stammt aus unserer praktischen Erfahrung im [HagiCode](https://hagicode.com)-Projekt. HagiCode ist ein KI-gesteuerter Code-Assistent, und während der Entwicklung nutzen wir extensiv den OpenSpec-Workflow zur Verwaltung technischer Vorschläge. Die in diesem Artikel vorgestellte Agent-Schichtungsstrategie ist genau die Optimierungslösung, die wir aus der praktischen Nutzung abgeleitet haben.
22+
23+
Wenn Sie diese Lösung als wertvoll empfinden, bedeutet das, dass unsere technische Praxis recht gut ist – HagiCode selbst verdient ebenfalls Beachtung.
24+
25+
## OpenSpec-Workflow-Analyse
26+
27+
Das OpenSpec-System umfasst mehrere Kernphasen, jede mit spezifischen Zielen und Randbedingungen. Das Verständnis der Verantwortungsgrenzen dieser Phasen ist die Grundlage für die Entwicklung einer effektiven Agent-Strategie.
28+
29+
```
30+
┌─────────────────────────────────────────────────────────────────────┐
31+
│ OpenSpec-Workflow-Phasen │
32+
├─────────────────────────────────────────────────────────────────────┤
33+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
34+
│ │ Explore │ -> │ New │ -> │ FF │ -> │ Apply │ │
35+
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
36+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
37+
│ │ Archive │ │ Sync │ │ Verify │ │ Status │ │
38+
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
39+
└─────────────────────────────────────────────────────────────────────┘
40+
```
41+
42+
Die Ziele jeder Phase unterscheiden sich vollständig: Die Explore-Phase erfordert eine Denkhaltung, konzentriert auf die Informationssammlung; die New-Phase soll auf die Bedarfsanalyse und Lösungsentwicklung fokussieren; die FF-Phase erstellt Artefakte massenhaft in Abhängigkeitsreihenfolge; die Apply-Phase verwandelt Vorschläge in tatsächlichen Code. Dieselbe Prompt-Vorlage für diese sehr unterschiedlichen Aufgaben einzusetzen, ist offensichtlich nicht angemessen.
43+
44+
## Prompt-Systemarchitektur
45+
46+
OpenSpec nutzt ein templatbasiertes Prompt-System, was die technische Grundlage für die Agent-Schichtung bietet. Die Template-Dateien verwenden das `.hbs`-Format (Handlebars/Scriban), zusammen mit `.json`-Metadatendateien zur Definition von Parametern und Validierungsregeln, und unterstützen zweisprachigen Chinesisch-Englisch-Betrieb.
47+
48+
Die zentrale Entwurfsentscheidung ist die `PromptScenario`-Enumeration, die verschiedene Phasen-definierte Prompt-Szenarien festlegt:
49+
50+
```csharp
51+
public enum PromptScenario
52+
{
53+
OpenspecV1Explore, // Erkundungsphase
54+
OpenspecV1New, // Neuer Vorschlag
55+
OpenspecV1Ff, // Schnelle Generierung
56+
OpenspecV1Apply, // Änderungen anwenden
57+
OpenspecV1Archive // Archivieren
58+
}
59+
```
60+
61+
Jedes Szenario verfügt über eine entsprechende unabhängige Template-Datei, wie beispielsweise `openspec-v1-explore.zh-CN.hbs` und `openspec-v1-ff.zh-CN.hbs`, die es ermöglicht, phasenspezifische Randbedingungen und Anleitungen einzufügen.
62+
63+
## Parametrisiertes Prompt-Laden
64+
65+
Die Implementierung der dynamischen Parameterinjektion ist der Kern des gesamten Systems. Der `FilePromptProvider` ist verantwortlich für das Laden von Prompts basierend auf Szenarien und Parametern:
66+
67+
```csharp
68+
public async Task<string> GetOpenspecV1FfPromptAsync(
69+
string changeName,
70+
string changeDescription,
71+
string locale = "en-US",
72+
string? planningDirectionInstructions = null,
73+
CancellationToken cancellationToken = default)
74+
{
75+
var parameters = new Dictionary<string, object>
76+
{
77+
{ "planningDirectionInstructions",
78+
ResolvePlanningDirectionInstructions(locale, planningDirectionInstructions) }
79+
};
80+
81+
if (!string.IsNullOrWhiteSpace(changeName))
82+
{
83+
parameters["changeName"] = changeName;
84+
}
85+
86+
return await GetPromptWithParametersAsync(
87+
PromptScenario.OpenspecV1Ff,
88+
locale,
89+
cancellationToken,
90+
parameters);
91+
}
92+
```
93+
94+
Dieser Ansatz ermöglicht es uns, zur Laufzeit dynamisch Parameter wie `changeName` und `planningDirectionInstructions` zu injizieren, ohne die Template-Datei selbst ändern zu müssen.
95+
96+
## Dynamische Konfiguration der Planungsrichtung
97+
98+
HagiCode implementiert ein flexibles Planungsrichtungssystem, das es den Benutzern ermöglicht, für jede Generierung eine andere Richtung zu wählen. Jede Richtung verfügt über eine unabhängige ID, Beschreibung und Prompt-Fragment:
99+
100+
```csharp
101+
public static class ProposalPlanningDirections
102+
{
103+
private static readonly ProposalPlanningDirectionDefinition[] Catalog =
104+
[
105+
new(
106+
ExploreId,
107+
"Erkundungsmodus",
108+
DefaultEnabled: true,
109+
EnglishPromptFragment:
110+
"- Erkundungsmodus: Füge eine explizite Erkundungsrunde hinzu...",
111+
ChinesePromptFragment:
112+
"- 探索模式:在定稿工件之前增加明确的探索阶段..."),
113+
// ... change-map, flowchart, prototype, architecture, sequence
114+
];
115+
116+
public static NormalizedProposalPlanningDirections Normalize(
117+
bool? enableExploreMode,
118+
IReadOnlyList<PlanningDirectionOptionDto>? planningDirections)
119+
{
120+
// Standardkonfiguration und benutzerdefinierte Konfiguration zusammenführen
121+
}
122+
}
123+
```
124+
125+
Unterstützte Richtungen umfassen: `explore` (Erkundungsmodus), `change-map` (Änderungskarte), `flowchart` (Interaktionsflussdiagramm), `prototype` (UI-Prototyp), `architecture` (Architekturdiagramm), `sequence` (API-Sequenzdiagramm). Benutzer können diese Richtungen nach Belieben aktivieren oder deaktivieren, und das System generiert dynamisch entsprechende Prompt-Anweisungsblöcke.
126+
127+
In Handlebars-Templates werden bedingte Anweisungen verwendet, um diese Anweisungen einzufügen:
128+
129+
```handlebars
130+
{{#if planningDirectionInstructions}}
131+
## Planungsrichtung für diese Generierung
132+
133+
{{{planningDirectionInstructions}}}
134+
{{/if}}
135+
```
136+
137+
## Klare Inhaltsbereichsbeschränkungen
138+
139+
Die wichtigste Verbesserung ist die Klarstellung der Inhaltsbereichsbeschränkungen für verschiedene Dokumenttypen, insbesondere tasks.md. Wir haben strenge Randbedingungen in den Prompt aufgenommen:
140+
141+
```markdown
142+
### tasks.md Inhaltsbereichsbeschränkungen
143+
144+
Bei der Erstellung von `tasks.md`-Artefakten müssen die folgenden Inhaltsbereichsbeschränkungen beachtet werden:
145+
146+
**Muss enthalten**:
147+
- Geschäftslogikaufgaben (Code-Implementierung, Funktionsentwicklung)
148+
- Technische Implementierungsaufgaben (Komponentenintegration, API-Entwicklung)
149+
- Testaufgaben (Unit-Tests, Integrationstests)
150+
- Dokumentationsaufgaben (Dokumentation aktualisieren, Kommentare hinzufügen)
151+
152+
**Darf nicht enthalten**:
153+
- Git-Commit-Operationen (git add, git commit, git push)
154+
- Versionskontrollverwaltungsworkflows
155+
- Bereitstellungs- und Veröffentlichungsoperationen
156+
```
157+
158+
Die Verwendung von normativer Sprache (MUST/SHALL) statt empfehlender Sprache stellt sicher, dass die KI diese Randbedingungen strikt versteht. Für proposal.md und design.md haben wir ebenfalls ihre jeweiligen Verantwortungsgrenzen geklärt: proposal.md muss Codeänderungstabellen und UI-Prototypdiagramme enthalten (wenn UI-Änderungen betroffen sind), während design.md Architekturdiagramme und Datenflussdiagramme enthalten muss.
159+
160+
## Kontextverankerung in der Erkundungsphase
161+
162+
Das Problem der Explore-Phase wird am leichtesten übersehen – die KI-Erkundung könnte vollständig vom Vorschlagsbereich abweichen. Wir haben dies durch Prompt-Verbesserungen gelöst:
163+
164+
```markdown
165+
## Explore-Ausführungsprinzipien
166+
167+
- **Keine Dokumentation erforderlich** - Erkundungsergebnisse müssen nicht als unabhängiges Dokument gespeichert werden
168+
- **Informationsübermittlung** - Nach Abschluss der Erkundung werden die gesammelten Informationen an die Proposal-Erstellungsphase übermittelt
169+
- **Fokus auf Nachdenken** - Der Wert der Erkundung liegt in der Informationssammlung, nicht in der Dokumentproduktion
170+
171+
## Verbindung mit Proposal-Erstellung
172+
173+
Die Explore-Phase findet statt, nachdem der Vorschlag erstellt wurde, aber bevor der Projektcode geschrieben wurde. Nach Abschluss der Erkundung
174+
wird das System Sie zur Erstellung oder Auffüllung der Datei `proposal.md` leiten, und die durch Erkundung gesammelten Informationen dienen als Grundlage für den Vorschlagsinhalt.
175+
```
176+
177+
Dies klärt die Positionierung der Explore-Phase: Sie ist ein vorbereitender Informationssammlungsschritt, kein unabhängiger Dokumentproduktionsabschnitt. Nachdem die KI dies versteht, kann sie sich stärker auf vorschlagsbezogene Wissenserkundung konzentrieren.
178+
179+
## Implementierungsleitfaden
180+
181+
Wenn Sie diese Lösung in HagiCode anwenden möchten, können Sie die folgenden Schritte durchführen:
182+
183+
1. **Planungsrichtungen definieren**: Definieren Sie Richtungs-ID, Standardstatus und Prompt-Fragmente in `ProposalPlanningDirections.cs`
184+
2. **Template-Parameterisierung**: Verwenden Sie bedingte Anweisungen und Variableninjektion in `.hbs`-Templates
185+
3. **Ausgabe validieren**: Überprüfen Sie, ob entsprechende Artefakte die erwarteten Inhalte enthalten, wenn bestimmte Richtungen aktiviert sind
186+
4. **Grenzen testen**: Validieren Sie, dass bei deaktivierten Richtungen keine entsprechenden Inhalte generiert werden und andere Richtungen nicht beeinträchtigt werden
187+
188+
Beachten Sie, dass Template-Änderungen mit Upstream synchron gehalten werden sollten und die Struktur der chinesischen und englischen Templates konsistent sein sollte. Das Rendern der Planungsrichtungen sollte im Mikrosekundenbereich abgeschlossen werden, um Auswirkungen auf die Leistung zu vermeiden.
189+
190+
## Zusammenfassung
191+
192+
Die Leistungsoptimierung des OpenSpec-Workflows liegt im Verständnis der differenzierten Anforderungen verschiedener Phasen. Durch phasenspezifische Agenten, parametrisierte Templates und klare Inhaltsrandbedingungen ermöglichen wir der KI, in jedem Schritt hochwertige Inhalte zu liefern.
193+
194+
Diese Lösung wurde in der Praxis von HagiCode validiert – sie verbesserte nicht nur die Dokumentqualität, sondern reduzierte auch den Aufwand für manuelle Änderungen. Wenn Ihr Team einen ähnlichen vorschlagsgetriebenen Workflow verwendet, hoffe ich, dass diese Erfahrungen für Sie inspirierend sind.
195+
196+
Am Ende ist es nur das Zerlegen von Problemen. Jede Phase hat ihre eigenen Besonderheiten, wenn die richtige Methode angewendet wird, werden Probleme natürlich einfacher.
197+
198+
## Referenzmaterialien
199+
200+
- HagiCode-Projektadresse: [github.com/HagiCode-org/site](https://github.com/HagiCode-org/site)
201+
- HagiCode-Website: [hagicode.com](https://hagicode.com)
202+
- Demo-Video der offiziellen Version: [www.bilibili.com/video/BV1z4oWB3EpY/](https://www.bilibili.com/video/BV1z4oWB3EpY/)
203+
- Ein-Klick-Installation zum Erleben: [docs.hagicode.com/installation/docker-compose](https://docs.hagicode.com/installation/docker-compose)
204+
- Desktop-Client schnelle Installation: [hagicode.com/desktop/](https://hagicode.com/desktop/)
205+
206+
---
207+
208+
Wenn dieser Artikel für Sie hilfreich ist:
209+
- Geben Sie ein Like, damit mehr Personen es sehen
210+
- Kommen Sie zu GitHub und geben Sie einen Star
211+
- Besuchen Sie die Website für weitere Informationen
212+
- Schauen Sie sich das Demo-Video an, um die vollständigen Funktionen zu verstehen
213+
- Ein-Klick-Installation starten, um zu erleben
214+
215+
Die öffentliche Beta hat begonnen, willkommen zur Installation und zum Erleben!

0 commit comments

Comments
 (0)