Skip to content

Commit b603aa8

Browse files
committed
Release a3s-code 2.1.0
1 parent 5c0668c commit b603aa8

119 files changed

Lines changed: 4187 additions & 9331 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/setup-workspace.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ sed -i.bak \
1414
-e 's|a3s-lane = { version = "0.4", path = "../../lane" }|a3s-lane = "0.4"|' \
1515
-e 's|a3s-search = { version = "1.2.3", path = "../../search", default-features = false, features = \["lightpanda"\] }|a3s-search = { version = "1.2.3", default-features = false, features = ["lightpanda"] }|' \
1616
-e 's|a3s-box-sdk = { version = "0.7", path = "../../box/src/sdk", optional = true }|a3s-box-sdk = { version = "0.7", optional = true }|' \
17-
-e 's|a3s-ahp = { version = "2.3", path = "../../ahp", optional = true, features = \["http", "websocket", "unix-socket"\] }|a3s-ahp = { version = "2.3", optional = true, features = ["http", "websocket", "unix-socket"] }|' \
18-
-e 's|a3s-ahp = { version = "2.3", path = "../../ahp", optional = true, features = \["http", "websocket"\] }|a3s-ahp = { version = "2.3", optional = true, features = ["http", "websocket"] }|' \
17+
-e 's|a3s-ahp = { version = "2.4", path = "../../ahp", optional = true, features = \["http", "websocket", "unix-socket"\] }|a3s-ahp = { version = "2.4", optional = true, features = ["http", "websocket", "unix-socket"] }|' \
18+
-e 's|a3s-ahp = { version = "2.4", path = "../../ahp", optional = true, features = \["http", "websocket"\] }|a3s-ahp = { version = "2.4", optional = true, features = ["http", "websocket"] }|' \
1919
core/Cargo.toml
2020
rm -f core/Cargo.toml.bak
2121

@@ -33,7 +33,7 @@ rm -f sdk/node/Cargo.toml.bak
3333

3434
# core/Cargo.toml — replace ahp path dep in dev-dependencies
3535
sed -i.bak \
36-
-e 's|a3s-ahp = { path = "../../ahp" }|a3s-ahp = "2.3"|' \
36+
-e 's|a3s-ahp = { path = "../../ahp" }|a3s-ahp = "2.4"|' \
3737
core/Cargo.toml
3838
rm -f core/Cargo.toml.bak
3939

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ The model should reason. The harness should decide what context is load-bearing,
2020
Most coding agents fail for boring reasons:
2121

2222
- too many tools are injected into every prompt
23-
- raw search results, test logs, and subagent transcripts flood the context
23+
- raw search results, test logs, and delegated-task transcripts flood the context
2424
- memory, skills, MCP, hooks, and project hints all inject context through separate paths
2525
- safety is split across permissions, confirmations, skills, and custom guards
2626
- agents stop after "I changed it" instead of proving the change works
@@ -118,7 +118,7 @@ memory
118118
file search
119119
MCP
120120
AHP
121-
subagents
121+
delegated task runs
122122
tool observations
123123
-> ContextItem
124124
-> rank
@@ -127,7 +127,7 @@ tool observations
127127
-> render
128128
```
129129

130-
Raw logs, full grep output, and complete subagent transcripts should be stored as artifacts or trace data, not repeatedly injected into the prompt.
130+
Raw logs, full grep output, and complete delegated-task transcripts should be stored as artifacts or trace data, not repeatedly injected into the prompt.
131131

132132
### 3. Tools Are Selected, Not Dumped
133133

@@ -150,7 +150,6 @@ Intent-gated tools:
150150
| Web | `web_fetch`, `web_search` |
151151
| Git | `git` |
152152
| Batch | `batch` |
153-
| Skill admin | `manage_skill` |
154153
| External | MCP tools |
155154

156155
This follows the same direction as modern agent harnesses: remove routine tool clutter from the model's context and expose capabilities only when the task asks for them.
@@ -189,9 +188,31 @@ script can call every registered tool except `program`; use `allowedTools` or
189188
structured summaries, findings, artifact references, and suggested next actions.
190189
Raw output belongs in trace storage.
191190

192-
### 5. Subagents Isolate Context
191+
Node and Python expose the same session controls as the Rust core:
193192

194-
Subagents are not there to create more chat. They isolate local work.
193+
```js
194+
agent.session('/repo', { planningMode: 'disabled' }) // auto | enabled | disabled
195+
await session.delegateTask({
196+
agent: 'explore',
197+
description: 'Find auth files',
198+
prompt: 'Inspect auth-related files and return evidence.',
199+
})
200+
console.log(session.toolDefinitions())
201+
```
202+
203+
```python
204+
session = agent.session("/repo", planning_mode="enabled")
205+
session.delegate_task(
206+
agent="verification",
207+
description="Check release risk",
208+
prompt="Validate the current changes and summarize blockers.",
209+
)
210+
session.tool_definitions()
211+
```
212+
213+
### 5. Delegated Tasks Isolate Context
214+
215+
Delegated tasks are not there to create more chat. They isolate local work.
195216

196217
The parent agent delegates:
197218

@@ -200,7 +221,7 @@ task(role, prompt, budget)
200221
parallel_task(tasks)
201222
```
202223

203-
Subagents should return:
224+
Delegated child runs should return:
204225

205226
- summary
206227
- key findings
@@ -235,7 +256,7 @@ Verification can include:
235256
- lint
236257
- command output
237258
- git diff review
238-
- subagent review
259+
- delegated review
239260
- explicit residual risk reporting
240261

241262
---
@@ -285,12 +306,10 @@ a3s-code
285306
286307
├── delegation
287308
│ ├── task
288-
│ ├── parallel_task
289-
│ └── workflow plugins
309+
│ └── parallel_task
290310
291311
├── advanced control
292-
│ ├── session-level lane queues for external/hybrid dispatch
293-
│ └── SubAgent lifecycle control
312+
│ └── session-level lane queues for external/hybrid dispatch
294313
295314
└── API
296315
├── Rust
@@ -339,22 +358,16 @@ Use delegation when a task benefits from context isolation.
339358

340359
Core delegation primitives:
341360

342-
- `task` — run one focused subagent
343-
- `parallel_task` — run independent subagents concurrently
344-
345-
The older model-visible `run_team` tool is intentionally removed in 2.0.
346-
Multi-agent work should enter through the delegation core. The duplicate
347-
`Orchestrator.runTeam()` shortcut from 1.0 is removed.
361+
- `task` — run one focused delegated child run
362+
- `parallel_task` — run independent delegated child runs concurrently
348363

349-
`Orchestrator` remains an advanced control-plane API for monitoring and
350-
controlling long-running real SubAgents from an `Agent`. It is not the default
351-
multi-agent composition mechanism, and placeholder SubAgent execution is not
352-
part of 2.0.
364+
The older model-visible team shortcut and duplicate 1.x control-plane API are
365+
removed in 2.0. Multi-agent work enters through the delegation core.
353366

354367
Optional lane queues are also outside the default path. They are for explicit
355368
external/hybrid dispatch, priority experiments, and operational integrations;
356369
ordinary sessions are queue-free unless a session queue configuration is supplied.
357-
They are not part of the Orchestrator/SubAgent control plane.
370+
They are not part of the delegation path.
358371

359372
---
360373

core/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "a3s-code-core"
3-
version = "2.0.1"
3+
version = "2.1.0"
44
edition = "2021"
55
authors = ["A3S Lab Team"]
66
license = "MIT"
@@ -105,10 +105,10 @@ chrono = { version = "0.4", features = ["serde"] }
105105
rquickjs = { version = "0.11.0", features = ["futures"] }
106106

107107
[target.'cfg(unix)'.dependencies]
108-
a3s-ahp = { version = "2.3", path = "../../ahp", optional = true, features = ["http", "websocket", "unix-socket"] }
108+
a3s-ahp = { version = "2.4", path = "../../ahp", optional = true, features = ["http", "websocket", "unix-socket"] }
109109

110110
[target.'cfg(not(unix))'.dependencies]
111-
a3s-ahp = { version = "2.3", path = "../../ahp", optional = true, features = ["http", "websocket"] }
111+
a3s-ahp = { version = "2.4", path = "../../ahp", optional = true, features = ["http", "websocket"] }
112112

113113
[features]
114114
default = []

core/prompts/agent_verification.md

Lines changed: 0 additions & 95 deletions
This file was deleted.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Agent: Verification
2+
3+
You are an adversarial verification specialist. Your job is to find evidence,
4+
not to reassure.
5+
6+
## Hard Constraints
7+
8+
- Do not modify project files.
9+
- Do not install dependencies.
10+
- Do not run git write operations such as add, commit, push, reset, or checkout.
11+
- You may create temporary probes under `/tmp` or `$TMPDIR` when needed, and
12+
clean them up before finishing.
13+
14+
## Method
15+
16+
1. Read the relevant project instructions or README for expected build and test
17+
commands.
18+
2. Run the smallest meaningful check that can prove or disprove the claim.
19+
3. Add at least one adversarial probe when feasible: boundary input, invalid
20+
input, concurrency, idempotency, restart/persistence, or permission failure.
21+
4. Separate evidence from inference. Code reading alone is not verification when
22+
an executable check is available.
23+
24+
## Output
25+
26+
For each check, report:
27+
28+
```
29+
### Check: [what you verified]
30+
Command: [exact command]
31+
Observed: [key output or failure]
32+
Result: PASS | FAIL | PARTIAL
33+
```
34+
35+
End with one final verdict:
36+
37+
```
38+
VERDICT: PASS | FAIL | PARTIAL
39+
```
40+
41+
Use PARTIAL only for environmental limitations, and name the limitation.
File renamed without changes.

0 commit comments

Comments
 (0)