Accéder au contenu principal
Retour à Apprendre
13Comparaison16 min de lectureDébutant

COMPARAISON · UNE TÂCHE, DEUX WORKFLOWS

DeepSeek Harness et Pi : corriger la même erreur dans les deux

Partez d’un résultat observable : un rapport inclut à tort des commandes remboursées. Préparez deux copies indépendantes, choisissez le même modèle si les deux configurations le permettent et conservez les tests d’acceptation. Comparez le travail nécessaire pour obtenir une modification vérifiable, plutôt que des présentations de produits.

Dernière vérification
6 sept. 2026
Version source du guide
0.1.3-alpha.1
État de l’installation
Consultez la fiche de l’élément choisi
Portée vérifiée
  • Sources DSH Alpha fixées et documentation officielle actuelle des CLI, sessions et extensions de Pi
  • Exemple synthétique de commandes, correction de référence et restauration ciblée exécutés localement
  • Aucun benchmark comparatif de modèles ni résultat métier réel d’un fournisseur n’est revendiqué
Sur cette page
  1. Ce qui a réellement été vérifié
  2. Fixer les entrées et les critères de réussite
  3. Pourquoi effectuer ces vérifications
  4. Créer un petit projet avec une erreur observable
  5. Préparer deux répertoires au même point de départ
  6. Effectuer la tâche dans DSH
  7. Effectuer la même tâche dans Pi
  8. Donner aux deux agents la même tâche délimitée
  9. Vérifier indépendamment du message final de l’agent
  10. Comparer le travail réellement effectué
  11. Suspendre, reprendre et restaurer explicitement
  12. Choisir après une revue complète

Ce qui a réellement été vérifié

Fixer les entrées et les critères de réussite

Les entrées sont orders.csv, report.mjs et report.test.mjs. Attendez une modification ciblée de report.mjs, trois assertions réussies, le total 2000 et une explication. Aucun agent ne doit changer les données ni affaiblir les tests. Notez modèle, fournisseur, outils, instructions supplémentaires et durée ; des conditions différentes interdisent d’attribuer tout l’écart au Harness.

Pourquoi effectuer ces vérifications

Dans son texte de conception de 2025, Mario Zechner, créateur de Pi, privilégie un contexte visible et peu d’outils. Ici, notez lesquels des trois fichiers chaque Harness a réellement lus et quelles instructions supplémentaires il a chargées. L’article d’Anthropic sur l’évaluation distingue la conversation du résultat final. Examinez donc le journal des outils, report.mjs enregistré et les tests inchangés, pas seulement le message de conclusion. Le texte de 2025 explique la conception ; les commandes actuelles de Pi viennent de sa documentation actuelle.

Créer un petit projet avec une erreur observable

Préparez Node.js 24 et un terminal Bash dans un nouveau répertoire jetable : Bash sous macOS/Linux, Git Bash ou WSL sous Windows. harness-lab ne doit pas encore exister. L’exemple ne nécessite ni dépendances npm, ni compte, ni données privées, ni fichiers de production. Son CSV simple ne contient pas de virgules entre guillemets ; il ne s’agit pas d’un analyseur CSV général.

bash
create_harness_lab() {
mkdir harness-lab || return
cd harness-lab || return
cat > orders.csv <<'CSV'
id,status,cents
A,paid,1200
B,refunded,700
C,paid,800
D,pending,400
CSV
cat > report.mjs <<'JS'
export function totalPaid(csv) {
  const rows = csv.trim().split(/\r?\n/).slice(1);
  return rows.map(row => row.split(','))
    .filter(([, status]) => status !== 'pending')
    .reduce((sum, [, , cents]) => sum + Number(cents), 0);
}
JS
cat > report.test.mjs <<'JS'
const { default: assert } = await import('node:assert/strict');
const { readFileSync } = await import('node:fs');
const { default: test } = await import('node:test');
const { totalPaid } = await import('./report.mjs');
const csv = readFileSync(new URL('./orders.csv', import.meta.url), 'utf8');
test('only paid orders count', () => assert.equal(totalPaid(csv), 2000));
test('refunds alone count as zero', () => assert.equal(totalPaid('id,status,cents\nB,refunded,700\n'), 0));
test('an empty ledger counts as zero', () => assert.equal(totalPaid('id,status,cents\n'), 0));
JS
cp report.mjs report.original.mjs
node --test report.test.mjs
}
create_harness_lab
Créer trois fichiers et reproduire l’erreur

Le premier lancement doit produire deux assertions en échec et une réussie. Le code compte les 700 centimes remboursés, soit 2700 au lieu de 2000. La règle est précise : seules les lignes paid comptent ; refunded et pending apportent zéro. Les montants sont des centimes entiers.

Préparer deux répertoires au même point de départ

Copiez avant toute modification par un agent. DSH utilise harness-lab, Pi harness-lab-pi ; les deux contiennent le même code défectueux et sa sauvegarde. Une branche de conversation n’est pas un arbre de travail séparé : ne faites pas modifier un seul répertoire par les deux agents.

bash
copy_harness_lab() {
  (cd .. && test ! -e harness-lab-pi && cp -R harness-lab harness-lab-pi)
}
copy_harness_lab
Dupliquer l’exemple encore intact

Effectuer la tâche dans DSH

  1. 01

    Vérifier environnement et modèle

    Suivez le démarrage Alpha lié, avec sa compilation depuis le commit exact. Configurez vos identifiants dans Settings → Models, jamais dans l’instruction, et notez le modèle choisi.

  2. 02

    Sélectionner explicitement le projet

    Ajoutez le chemin absolu de harness-lab au sélecteur d’espace de travail. Une nouvelle interface web n’en sélectionne aucun, même si dsh a démarré depuis un répertoire de projet.

  3. 03

    Vérifier les permissions effectives

    Pour cet exercice local jetable, choisissez workspace-write si disponible et examinez les demandes d’autorisation. Ce préréglage associe le mode workspace-write à ask ; l’exécuteur configuré applique la limite. Chaque écriture ne déclenche donc pas nécessairement une fenêtre.

  4. 04

    Exécuter et observer

    Envoyez l’instruction commune. Examinez lectures, commandes, modifications et tests. Si l’agent demande un accès hors du projet ou une dépendance sans rapport, arrêtez et resserrez la tâche.

Effectuer la même tâche dans Pi

Installez Pi selon son démarrage officiel, puis entrez dans harness-lab-pi. Utilisez /login et /model pour choisir un modèle compatible, identique à celui de DSH si possible. Commencez avec les outils réduits ci-dessous ; la découverte optionnelle est désactivée pour éviter le chargement implicite d’extensions ou d’instructions étrangères à l’exercice.

bash
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
cd ../harness-lab-pi
Installer le CLI officiel de Pi et ouvrir sa copie du projet
bash
pi --no-extensions --no-skills --no-prompt-templates --no-themes --no-context-files --tools read,grep,find,ls
Inspection sans outils edit, write ou bash

Pi n’intègre pas de système de permissions pour les fichiers, les processus, le réseau ou les identifiants. La liste autorisée limite les outils proposés au modèle, pas les droits système du processus. Pour un projet non fiable, utilisez un conteneur, une machine virtuelle ou une autre isolation système vérifiée. Le guide officiel explique pourquoi déplacer l’exécution des outils ne suffit pas à isoler les autres extensions de l’hôte.

bash
pi -c --no-extensions --no-skills --no-prompt-templates --no-themes --no-context-files --tools read,edit,write,bash,grep,find,ls
Quitter l’inspection, puis reprendre la session avec les outils nécessaires

Donner aux deux agents la même tâche délimitée

text
Dans ce projet jetable, corrige report.mjs pour que totalPaid compte uniquement les lignes paid. Lis d’abord orders.csv et report.test.mjs, exécute node --test report.test.mjs et rapporte l’échec initial. Ne modifie ni orders.csv, ni report.test.mjs, ni report.original.mjs ; n’installe aucun paquet et n’accède pas aux autres répertoires. Fais la modification minimale, relance les trois assertions et calcule le total d’orders.csv. Fournis le fichier modifié, les résultats observés, le total et les limites. Distingue un problème d’environnement d’une assertion échouée.
Instruction à copier

Vérifier indépendamment du message final de l’agent

bash
node --test report.test.mjs
node --input-type=module -e "import {readFileSync} from 'node:fs'; import {totalPaid} from './report.mjs'; console.log(totalPaid(readFileSync('orders.csv','utf8')))"
diff -u report.original.mjs report.mjs
Exécuter vous-même dans chaque copie du projet

Attendez trois tests réussis et, séparément, le total 2000. Le diff remplace normalement le filtre par status === 'paid'. Une autre solution convient si elle respecte la règle et les tests. diff renvoie 1 lorsque les fichiers diffèrent : c’est attendu ici, pas un échec de test. L’absence de Node ou un accès refusé relève de l’environnement.

Comparer le travail réellement effectué

JetonRôleVérifier
Contexte initialDSH : sélection de l’espace, examen de la session et des outils. Pi : répertoire courant et contexte découvert ; ici, la découverte optionnelle est explicitement désactivée.Notez répertoire et contexte exacts ; une instruction identique ne garantit pas un contexte identique.
Approbations et isolationDSH combine isolation et approbations. Pi contrôle l’exposition des outils ; une limite système supplémentaire se configure séparément.Consignez la limite effective et les approbations ; le nombre de fenêtres n’est pas une mesure de sécurité.
Planification et délégationLa composition DSH peut inclure plans et sous-agents. Pi laisse plan-mode et les sous-agents aux extensions ou paquets.Ces trois fichiers n’en ont pas besoin. L’exemple officiel plan-mode montre l’approche sans imposer son installation.
Revue et repriseDSH enregistre les événements de session ; Pi propose /session, /resume, /tree et /fork.Gardez la modification testée et une note de reprise. L’historique donne du contexte, sans restaurer les fichiers modifiés.
Coût et rapiditéModèle, instructions, extensions et attente d’approbation influencent le résultat.Indiquez les observations ou « non mesuré ». Une tâche synthétique ne suffit pas à établir un classement général.

Suspendre, reprendre et restaurer explicitement

Avant d’arrêter, demandez objectif, fichiers modifiés, commandes exactes avec résultats et prochaine étape. Dans DSH, rouvrez la session et vérifiez l’espace. Dans Pi, pi -c reprend la dernière session du projet ; pi -r permet d’en choisir une. /tree et /fork divisent l’historique, sans annuler les fichiers. Préservez la tentative avant de restaurer uniquement l’implémentation de l’exercice.

bash
cp report.mjs report.attempt.mjs
cp report.original.mjs report.mjs
node --test report.test.mjs
Conserver la tentative et restaurer seulement le fichier d’exercice

Les deux échecs initiaux doivent réapparaître : c’est une vérification volontaire de la restauration. Conservez report.attempt.mjs pour comparer. Dans un vrai dépôt, utilisez une branche ou un arbre de travail propre et une restauration ciblée après revue ; n’écrasez pas d’autres travaux avec ces commandes.

Choisir après une revue complète

Essayez DSH si un espace web partagé, l’état visible des sessions et outils et des workflows composés vous conviennent. Essayez Pi si vous préférez votre terminal, un lancement CLI explicite et un petit noyau extensible. Décidez après la même tâche et la lecture du diff. Aucune interface ne garantit un correctif juste ni ne sécurise seule du code non fiable.

text
Harness/version :
Modèle/fournisseur :
Espace et fichiers initiaux :
Outils/permissions effectifs :
Instructions et approbations supplémentaires :
Tests : __ échecs initiaux ; __ réussites finales
Total observé :
Fichiers modifiés :
Durée/usage annoncé (ou non mesuré) :
Restauration :
Limites :
Conserver une courte fiche de comparaison

Continuer avec un objectif concret

Consulter les sources officielles

Architecture de DeepSeek Harness AlphaConsultez le modèle figé des plugins, Profile, bundle, outils et sessions.Préréglages de permissions de DeepSeek HarnessVérifiez comment le mode sandbox et la politique d’approbation sont associés, ainsi que l’endroit où les règles sont réellement appliquées.Documentation officielle de Pi Agent HarnessConsultez la documentation actuelle sur le TUI, les extensions, Skills, prompts, thèmes, paquets, sessions, RPC et SDK.Dépôt officiel de PiVérifiez l’espace de noms actuel, l’autorité par défaut des outils et les recommandations d’isolation.Consignes de sécurité de DeepSeek HarnessAvant de choisir un dossier de travail, consultez les limites liées au statut expérimental, à l’exécution de code et à l’absence d’audit de sécurité.Guide Web UI de DeepSeek Harness AlphaConsultez la configuration figée des modèles, le choix de l’espace de travail, la première tâche et les approbations.Référence CLI et contexte de PiVérifiez les listes d’outils, les options de découverte, le modèle et les paramètres de session.Commandes de session PiReprise, branches, export et distinction entre historique et fichiers du projet.Guide de conteneurisation de PiComparez l’isolation du processus entier au routage des outils et identifiez ce qui reste sur l’hôte.Exemple officiel d’extension plan-mode de PiUn exemple concret de workflow fourni par une extension ; sa présence dans examples ne signifie pas qu’il est activé par défaut.Mario Zechner : conception de Pi (2025)Contexte de conception par son créateur, pas le contrat actuel du CLI.Anthropic : évaluation des agents (2026)Référence primaire distinguant conversations, résultats et contrôles.

Questions fréquentes

Avant de faire un changement

Réponses sur les formats, la compatibilité, les preuves et le retour en arrière.

Que vérifie ce guide ?

Ce guide couvre : Sources DSH Alpha fixées et documentation officielle actuelle des CLI, sessions et extensions de Pi ; Exemple synthétique de commandes, correction de référence et restauration ciblée exécutés localement ; Aucun benchmark comparatif de modèles ni résultat métier réel d’un fournisseur n’est revendiqué

Par quoi dois-je commencer ?

Partez d’un résultat observable : un rapport inclut à tort des commandes remboursées. Préparez deux copies indépendantes, choisissez le même modèle si les deux configurations le permettent et conservez les tests d’acceptation. Comparez le travail nécessaire pour obtenir une modification vérifiable, plutôt que des présentations de produits.

Quelle limite faut-il surtout retenir ?

Les étapes DSH utilisent 0.1.3-alpha.1 compilé depuis d347e703908d0406b7a7ef80e3a0e594d86b2215. Les commandes Pi ont été vérifiées dans la documentation officielle le 6 septembre 2026. L’exemple de commandes et sa correction ont été exécutés localement ; les prompts DSH/Pi n’ont pas fait l’objet d’un comparatif avec des modèles.

Trois tests réussis prouvent-ils qu’un Harness est meilleur ?

Non : ils montrent que cette implémentation satisfait ces assertions. Élargissez les tâches en gardant modèle, entrées et critères constants avant de généraliser.

Peut-on partager les fichiers de session entre DSH et Pi ?

Ne supposez pas leurs formats compatibles. Copiez le projet et une note textuelle, en conservant les sessions propres à chaque outil. La migration DSH Alpha n’est pas un importateur de sessions Pi.

Faut-il installer un plugin plan-mode ?

Non. Une boucle inspection → modification → test suffit. Consultez l’exemple Pi si ce workflow vous est utile ; charger une extension reste une décision de confiance distincte.

Continuer à apprendre

Continuer à partir des preuves vérifiées

Comparez les artefacts publiés ou revenez à la documentation d'installation.