Files
deepseek-harness/packages/core
Yichen Jiang 80eca619ef refactor(web-search): admit web_search through step activation conditions
Master's step-scoped conditional activation resolves each tool's condition
before a model step assembles, and both the declarations and dispatch read
that admitted set. Prompt assembly no longer carries tool declarations, so
tool-web's system-prompt/assemble listener could not remove web_search any
more, and removing a declaration there never stopped a repeated call from
running.

tool-web now registers web_search with a when condition that asks
ctx.web.searchReady() about the route of the step's model selection, and its
guidance section renders from the step's admitted set. A step that does not
admit the tool leaves it out of declarations, guidance, and PTC program
bindings, and refuses a call to it as UNKNOWN_TOOL without reaching a
provider. Tests that execute web_search directly now run inside a resolved
step, as the executor requires for conditional registrations.

Docs, the readiness Agent Note, and the event producer/consumer table follow
the new mechanism; the tools README gains an explicit conditional-tools
anchor for cross-locale links.
2026-10-22 10:57:09 +08:00
..
2026-10-17 15:10:31 +08:00

description, kind
description kind
The core group map: the session log, system-prompt assembly, tool registry, agent vocabulary, and default loop that form the product API spine. package-group

packages/core

English | 中文

Summary

Use the core packages to build or extend an agent that records durable session history, assembles system prompts, exposes tools, selects a default model, and runs model turns. These packages define the shared APIs used by every composition, while executable product assemblies live under packages/bundle. Choose this group when developing agent behavior or replacing one of those capabilities; start with dsh-base when you need the default runnable composition.

Table of Contents


Packages

Package Role ctx key
scope/ Scoped registration and event routing that isolate one agent's contributions library — no ctx key
session/ The append-only session event log every agent's history derives from ctx.sessions
system-prompt/ System-prompt assembly from ordered sections, tool schemas, and variables ctx.systemPrompt
tools/ The tool registry and guarded execution pipeline the loop dispatches through ctx.tools
agent-tool-presentation/ Per-agent tool-presentation selector for presets no ctx key
agent/ The Agent handle plugins program against, plus its live registry and events ctx.agents
agent-default-model/ The deployment default model selection entry points apply to fresh agents ctx.agentDefaultModel
agent-loop/ The default agent driver: creates agents and runs the turn and step lifecycle ctx.agentLoop

scope supplies the shared scoping primitive; agent owns the public Agent contract, while agent-loop is its default implementation, so extension plugins depend on agent and the driver stays swappable. agent-default-model owns the deployment selection an entry point applies when a session has none of its own. Runnable compositions live under packages/bundle; this group owns only the swappable spine pieces.



Dev Note

Working context for maintainers — click to expand

None.