Replies: 8 comments 14 replies
概要DSH 已经可以通过 Cordis 检查并改变自身运行时,也可以通过插件包分享这些改变。 这份提案引入面向任务的 Harness 自进化循环。平台把每个 Plugin 和 Harness Recipe 这里的“平台”是 Registry 与评测服务的逻辑角色,可以由本地 CI、组织服务、社区 这项资产契约把四类记录绑定在一起:精确产物、任务声明与评测 Case、平台生成的评分, 下文暂用 Harness Pack 指代发布者维护的契约:它为 Plugin Asset 或 Harness 社区相关基础以下 Discussions 提供了可复用的基础:
这些讨论分别解决了不同边界。发现机制负责找出候选插件。能力元数据表达作者认为 本提案新增平台维护的任务证据、组合搜索、结果归因与 Recipe 提升契约,并将上述 DSH 目前提供了什么,还缺什么DSH 已具备 Harness 演化的多项前提。它们解决了“如何改变”和“如何记录”,但没有
因此,当前架构已经提供变异、组合和观察。Harness 自进化还需要搜索、评测、 这里的沉淀不只是保留 Trace。成功组合需要成为带版本、可复现的资产,并影响后续 升级一:把任务证据纳入资产模型平台可以管理两类相关资产:
Harness Recipe 不能省略。插件效果并不满足简单加法。两个单独有用的插件组合后, 核心评测契约把每项资产连接到两类记录。Planner 还会读取独立维护的 Selection Facts, 1. 发布者维护的 Pack不可变 Pack 保存声明和可复现的评测输入:
2. 平台维护的证据平台运行评测,并单独保存 Scorecard:
发布者可以贡献评测 Case 和 Grader,但发布者自报的 一次成功 Trial 不能扩大资产声明的适用范围。Pack 声明目标任务族,平台证据确定 这个拆分扩展了 #2269 讨论的证据字段,也为 #2276 的 Compose 增加任务质量维度。 一种可能的 Pack 结构pack:
id: code-review-security
version: 0.3.0
kind: plugin # plugin | harness-recipe
publisher: example-org
artifact:
plugins:
- id: security-review
version: 1.4.2
task_profile:
intents:
- review a code change for security vulnerabilities
inputs:
- git_diff
- repository_context
expected_outcomes:
- actionable findings with file and line evidence
compatibility:
models:
- family: deepseek
environments:
- git_repository
permissions:
- filesystem_read
conflicts: []
evaluation:
suites:
- id: security-review-v1
cases: ./evals/cases.jsonl
graders: ./evals/graders.yaml
required_metrics:
- finding_precision
- finding_recall
- task_success
- token_cost
- latency#2276 的 Compose Schema 可能已经适合承载 升级二:建设面向任务的 Harness PlannerPlanner 搜索 Harness 配置,而不是返回一个静态推荐:
仅靠 Artifact 身份不足以完成选择。兼容性、可达性、配置要求、权限、成本、风险和 独立 Runner 应把精确产物执行绑定作为单独的互操作契约。生成评测证据前,Runner Pack 与证据契约不应绑定某一种搜索算法。平台可以先实现检索、约束过滤、候选排序和 当前 DSH Plan Mode 没有执行这类搜索。它注入规划指导,并让用户评审模型生成的一份 升级三:闭合任务与证据循环对于一次请求,DSH 或平台服务可以执行以下流程:
Planner 在当前任务、模型、环境、预算和风险约束下,选择证据更充分的 Harness。 激活环节可以建立在 #1888 之上。候选检索可以复用 #1597、#1760 和 #2282。 平台需要分开运行两个循环:
缺少离线循环时,每个开发者都要重复发现相同组合。缺少在线循环时,平台只能推荐 为什么适合 DSHCordis 已经提供执行基础:组合、检查、带版本的动态 Package、激活、更新、卸载和 DSH 已经支持受控变异。提案增加缺失的学习循环: 完成这条链路后,DSH 可以根据过去的 Outcome 改善后续组合决策。 未来方向:训练擅长 Harness 搜索的 DeepSeek 模型平台循环会产生以下训练数据: DeepSeek 可以利用这些记录训练专门负责 Harness 搜索与规划的模型。模型接收当前任务 该模型可以减少候选生成和在线 Probe 的成本,但不能替代 Pack 契约与外部评测。模型 相关研究
希望讨论的问题
是否值得先定义一份最小公共 Schema,让现有的发现、Compose、验证和会话装配项目 如果你希望 DSH 团队评估这些契约与运行时 Hook,请为本 Discussion 点 Upvote。 |
|
非官方补充,贴一个已经能跑的窄域 Pack 草图。 #2454 把缺的环节写清楚了:任务、组合、评测、Scorecard 现在是分开的。世界模型研究刚好是一个很小的落地:
社区插件 dsh-wm 按这条回路做了 measure / know / iterate。sunset fixture 不占 GPU,适合当最小 probe。 这回答不了你列出的平台级问题(跨模型 Scorecard、恶意 grader、隐私),但可以当「一个 plugin Pack + 一个可复现 eval case」的最小范围。 相关:Show Your Plugins #2618 |
|
The newly released Harness Continual Learning paper (arXiv:2608.19013) appears to formalize an important part of the evolution loop described here: separating candidate generation from state commitment. A paper-faithful mapping to DSH could use three independently replaceable Cordis boundaries:
The important distinction is that rollback after a failure is not identical to guarded commitment. The candidate should ideally remain isolated until the evaluator authorizes promotion, and the optimizer should not own its own rubric or aggregate decision. Would it be useful to define a small shared contract for Candidate, EvaluationEvidence, RetentionAnchor, and CommitDecision so existing community optimizers and continual-memory plugins can interoperate instead of each inventing a different scorecard and promotion rule? I have drafted a small, dependency-free reference gate and JSON Schemas that demonstrate deterministic accept/reject decisions, per-anchor non-regression checks, validity gates, evidence digests, and a deliberately regressing fixture. I would be glad to align the names and fields with the Pack / Recipe / Scorecard terminology being developed in this discussion. This is an independent, early contract draft and executable reference gate—not an official DeepSeek project, not yet a live Cordis plugin, and not a security sandbox. It does not silently mutate cross-session state: the optimizer only proposes; an independent evaluator and code-owned commit controller decide whether to promote the exact candidate. Reference implementation: https://github.com/Jstn-1g/dsh-guarded-hcl |
|
A narrow executable data point from a separate selection-layer experiment may help with the contract split in this proposal. I have a public Draft PR that packages ASM as a native DSH bundle: YE-YI7/asm-spec#13 It contributes two tools: Important limitation: this adapter currently selects services in an ASM catalog, not arbitrary installed DSH plugins. It is not a planner, installer, evaluator, execution gate, or adoption claim. The implementation deliberately requires an explicit taxonomy because the current selector does not treat natural-language task text as a semantic classifier; an unbounded cross-category result would look plausible while being invalid. The boundary that emerged maps to the Pack discussion as four separate objects:
I would avoid putting mutable scores or pricing into the artifact version identity. A manifest-only change should change the selection-evidence digest without creating a new plugin artifact version. For the smallest common schema, would DSH prefer a namespaced URI + digest for these selection facts in package/Bundle metadata, or a separate Pack/registry sidecar? I do not want to overload ToolSchema, freeze a community-only package field, or duplicate the evaluator/commit-controller contracts. If the direction is useful, I can reduce the Draft PR to a DSH-plugin fixture that proves only this identity-versus-selection-digest boundary. |
|
@YE-YI7 Yes—this sequencing fits the intended evidence boundary. I checked One precision: EvaluationEvidence v0.1 already carries generic My preference is a required {
"schemaUri": "https://…/runner-binding-v0.1.schema.json",
"digest": "sha256:…"
}The referenced, versioned RunnerBinding would own the candidate/service identifier, exact Bundle/artifact digest and digest profile, plus the Selection Receipt schema URI and digest. That keeps ASM-specific placement out of the gate while ensuring I also agree that “recursively sorted JSON” is not a portable contract. The digest profile should name one rule—my leading choice is RFC 8785 JCS with SHA-256 over its UTF-8 canonical bytes—and ship shared Python/Node vectors for canonical bytes, digests, and rejection cases. Those vectors should cover I opened the follow-up as a public, help-wanted contract issue with the mutation properties and definition of done: Jstn-1g/dsh-guarded-hcl#5 So: keep PR #13 narrow; define this as the next separate seam; then prove that mutations to the Bundle, receipt, service ID, binding schema, or binding digest fail before evidence reaches the gate. |
|
@wangcan26 Closure update on the exact M3-to-M1/M4 seam you described ("RunnerBinding/JCS then becomes the next independent M3-to-M1/M4 interop seam"):
Would you confirm whether this matches the seam you intended? A yes/no plus any remaining boundary correction is enough. I am not asking for an official DeepSeek adoption statement; the current claim remains |
|
@wangcan26 Thank you for independently verifying the merged artifacts and for stating the scope precisely. Recording the result as you stated: the Selection Receipt → RunnerBinding v0.1 → EvaluationEvidence v0.2 → CommitDecision chain matches the intended M3 selection-output → M1/M4 interoperability seam at No further action needed from you on this seam. Any further claim would have to be earned separately — e.g., via a public evaluator with independent task evidence and a real Recipe comparison — rather than by extending this conformance result. |
|
Yep, we're working on something similar here: https://tomkornblit.substack.com/p/we-gave-an-agent-write-access-to |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
DSH can already inspect and change its own runtime through Cordis, and
developers can distribute those changes as plugins. The current specification
does not bind the developer's task, exact active composition, execution trace,
evaluation, and outcome into reusable evidence. The platform can distribute
plugin artifacts, but it cannot systematically accumulate evidence about how
they perform across tasks, models, and environments or use that evidence to
update Harness Recipes, Scorecards, and composition policies. This is the
missing link in the evolution of externalized Harness knowledge.
I propose a task-conditioned Harness evolution loop. The platform treats every
Plugin and Harness Recipe as a versioned data asset. Each asset declares a Task
Profile that defines its task family and applicability boundary, then ships a
representative evaluation suite. The platform runs those evaluations, maintains
independent Scorecards, and gives the AI evidence for searching the next
composition. Real task outcomes update that evidence.
Here, the platform is a logical registry and evaluation role. A local CI
system, an organization service, a community registry, or an official hosted
service could perform that role. It stores each trial result separately and
builds a Scorecard only from results produced under comparable versions and
conditions.
The proposed asset contract binds four records that are currently separate:
the exact artifact, its task claims and evaluation cases, platform-produced
scores, and the outcomes observed when a Harness used it.
I will use Harness Pack as a provisional name for the publisher-owned
contract that attaches task claims, reproducible evaluation cases, graders,
and compatibility metadata to either a Plugin Asset or a Harness Recipe.
Platform-produced results, Scorecards, and real-task Outcomes remain separate
records. DSH already uses
Packagefor an immutable version of a dynamic CordisPlugin, so the final name should avoid that collision.
Related community foundations
Several community projects provide useful foundations:
and #1760
provide natural-language plugin discovery.
defines
use_when/not_forcapability declarations, recommends Top-Kplugins before a task, and publishes a small B/C evaluation with scripts.
proposes task-driven, session-scoped plugin assembly and cleanup.
proposes machine discovery, trust metadata, and a shareable Compose unit
containing plugin references and security declarations. Its comments also
discuss runtime evidence for both plugins and compositions.
connects marketplace records to machine-readable verification reports through
fields such as
verifiedBy,verifiedAt, andreportUrl.proposes real-host release lifecycle validation for packed plugins.
examines retrieval and staged activation for large tool catalogs.
These discussions solve different boundaries. Discovery finds candidates.
Capability metadata explains when an author expects a plugin to help. Validation
checks whether an artifact installs and behaves as declared. Compose records a
reusable configuration. Session assembly applies a configuration to a task.
This proposal adds a platform-owned contract for task evidence, composition
search, outcome attribution, and Recipe promotion. It turns the discovery,
capability metadata, validation, Compose, and session-assembly work above into
one task-conditioned Harness evolution loop.
What DSH provides today, and what is missing
DSH already has several prerequisites for an evolvable harness. They establish
the mechanics of change and observation, but they do not decide which change
will improve the current task.
The current architecture therefore provides mutation, composition, and
observation. Harness self-evolution also requires search, evaluation,
selection, and retention.
Here, retention means more than keeping a trace. A successful combination must
become a versioned asset with reproducible evidence, then influence the search
for later tasks.
Upgrade 1: make task evidence part of the asset model
The platform could manage two related assets:
fingerprint. It records the exact plugins, model settings, prompts, skills,
and configuration needed to rebuild one Harness composition.
The second asset matters because plugin effects are not additive. Two useful
plugins can conflict, duplicate context, increase tool-selection errors, or
exceed a task's latency and token budget. DSH therefore needs evidence for both
individual plugins and complete harness combinations.
The core evaluation contract connects each asset to two records. The planner
also reads mutable Selection Facts, described in Upgrade 2.
1. Publisher-owned Pack
The immutable Pack contains declarations and reproducible evaluation inputs:
expected outcomes;
2. Platform-maintained evidence
The platform runs evaluations and stores the resulting Scorecard separately:
The publisher may contribute evaluation cases and graders. A publisher-supplied
score: 95should not become trusted platform evidence.One successful trial should not broaden an asset's claimed applicability. The
Pack states the intended task family. Platform evidence determines where that
claim holds, while retention anchors protect earlier behavior when a Recipe
changes.
This split extends the evidence fields discussed in #2269. It also gives the
Compose work in #2276 a task-quality dimension rather than treating a
composition as useful solely because it can be shared and activated.
A possible Pack shape
The existing Compose schema from #2276 may be the right base for
harness-recipe; a separate Harness Pack type may not be necessary. The pointis the contract between the asset, its task claims, and independently produced
evidence.
Upgrade 2: build a task-conditioned Harness planner
The planner searches over Harness configurations instead of returning one
static recommendation:
partial execution evidence.
feedback.
current constraints.
Artifact identity alone is not enough for selection. Compatibility,
reachability, setup requirements, permissions, cost, risk, and evidence
references can change without changing the Plugin or Recipe itself. The
platform should store these as separately versioned Selection Facts. Each
choice should emit a Selection Receipt that pins the facts, constraints,
and evidence used for that decision.
An independent runner should handle exact-artifact execution binding as a
separate interoperability contract. Before it produces evaluation evidence,
the runner should resolve a versioned RunnerBinding. That document binds
the Selection Receipt to the selected candidate identifier, exact artifact
digest, artifact byte source, and named digest profile. The digest profile must
define portable JSON canonicalization and artifact byte-source rules, with
implementation-independent conformance vectors. The runner should place a
required
runnerBindingRefin EvaluationEvidence so the evidence digestcommits to the binding. The evaluator or gate must reject unresolved,
invalid, or mismatched bindings before CommitDecision.
The Pack and evidence contracts should not prescribe one search algorithm. The
platform can begin with retrieval, constraint filtering, ranked candidate
generation, and a small number of probes. Later implementations may use beam
search, a contextual bandit, tree search, or a trained planning model.
Current DSH Plan Mode does not perform this search. It injects planning guidance
and collects human approval for one generated plan.
Upgrade 3: close the task-to-evidence loop
For a request, DSH or a platform service could:
Profiles.
environment, permissions, cost, risk, reachability, and conflicts.
facts, constraints, and evidence behind the choice.
versioned RunnerBinding that binds the receipt to the exact artifact and
named digest profile.
task, retention anchors, validity checks, and budget limits. Produce
EvaluationEvidence with a required runnerBindingRef.
Activate the candidate through Cordis only when the decision accepts it.
to that Recipe.
it passes reproducibility, safety, and provenance checks.
The planner selects a better-supported harness under the current task, model,
environment, budget, and risk constraints.
The activation step can build on #1888. Candidate retrieval can build on #1597,
#1760, and #2282. The Pack and evidence records can build on #2276, #2269, and
#2088. Cordis supplies the mutation actions. The proposed addition is the
planner and the evaluation-driven feedback contract between those parts.
The platform should split work between two loops:
recipes against both current-task suites and retention anchors, and publish
versioned Scorecards. This gives online search useful priors.
cheap probes where needed, emit a Selection Receipt, commit only an accepted
candidate, and feed the observed outcome back into platform evidence.
Without the offline loop, every developer pays to rediscover the same
combinations. Without the online loop, the platform can only recommend a static
average that may not fit the current task.
Why this fits DSH
Cordis already supplies the execution substrate: composition, inspection,
versioned dynamic packages, activation, update, teardown, and effect disposal.
The Skill Registry supplies a discovery surface. Session logs and telemetry can
provide execution evidence.
DSH already supports controlled mutation. The proposed layers add the missing
learning loop:
With this loop, DSH can use past outcomes to improve future composition
decisions.
Future direction: train DeepSeek for Harness search
The platform loop also creates training data:
DeepSeek could use these records to train a model specialized in Harness search
and planning. Given a task and the current recipe, the model could predict the
next composition action, estimate candidate value, or decide that the current
recipe is sufficient. Successful search traces provide supervised targets;
platform evaluation and real outcomes can provide reward or preference signals.
The model would accelerate candidate generation and reduce online probes. It
would not replace the Pack contract or external evaluation: the model proposes
and predicts, while the platform verifies and records the result. This is a
future direction, not a capability DSH currently provides.
Related research
needed to replace components safely:
https://github.com/cordiverse/paper
database, and selection of promising candidates:
https://deepmind.google/discover/blog/alphaevolve-a-gemini-powered-coding-agent-for-designing-advanced-algorithms/
traces, and outcomes, and treats the evaluated agent as its model and harness:
https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents
https://arxiv.org/abs/2305.16291
while balancing exploration and exploitation. It helps explain the problem;
this proposal does not adopt RAP or require MCTS:
https://arxiv.org/abs/2305.14992
commitment and checks current improvement, historical retention, and
validity before committing a harness update:
https://arxiv.org/abs/2608.19013
Open questions
the plugin manifest, or use a separate Pack contract?
belong in platform-maintained evidence?
Recipe, or both?
categories?
the differences behind one aggregate score?
malicious graders, and score gaming?
describe Cordis-specific lifecycle rules?
constraint filtering?
cannot mutate the user's active Harness?
the platform preserve user and organization privacy?
Would it be useful to define a minimal shared schema that existing discovery,
Compose, verification, and session-assembly projects can all produce or consume?
If you would like the DSH team to evaluate these contracts and runtime hooks,
please upvote this Discussion. Use the comments for implementation evidence,
objections, and design feedback.
All reactions