feat: agent run loop, Generate[T], reflect-derived schemas
Phase 5: - agent/: model + system prompt + toolboxes composition; bounded tool-dispatch loop (default 10 steps); panic-proof tool execution; unknown-tool and duplicate-name handling; history continuation; step observers; partial results on ErrMaxSteps/errors (ADR-0012) - llm.SchemaFor[T]: strict-compatible JSON schemas from Go types (nullable pointers, description/enum tags, recursion rejected) - majordomo.Generate[T]: typed structured output with fence-stripping decode and model-naming errors - README agents/structured-output sections + matrix synced Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+18
@@ -1,5 +1,23 @@
|
||||
# progress
|
||||
|
||||
## 2026-06-10 — Phase 5: agent loop, Generate[T], schema derivation
|
||||
|
||||
**Landed:** `agent/` (ADR-0012): New(model, system, opts) with toolboxes,
|
||||
max steps (default 10), per-step request options, agent-level observers +
|
||||
per-run OnStep, WithHistory continuation (Result.Messages round-trips),
|
||||
sequential tool dispatch through panic-recovering ExecuteTool, unknown
|
||||
tools → IsError results, duplicate tool names fail loudly, partial Result
|
||||
preserved on ErrMaxSteps/model errors/cancellation. The agent.Skill
|
||||
interface ships here (instructions + tools composition is tested with a
|
||||
stub); the skill package with real implementations is Phase 6.
|
||||
`llm.SchemaFor[T]` reflect-derived strict-compatible JSON schemas
|
||||
(pointers→nullable anyOf, description/enum tags, maps/slices/time/RawMessage,
|
||||
recursion rejected) and root `majordomo.Generate[T]` (schema injection,
|
||||
fence-stripping decode, model-naming errors). 15 agent tests + schema +
|
||||
Generate suites, all hermetic.
|
||||
|
||||
**Next:** Phase 6 — skill package + two example skills.
|
||||
|
||||
## 2026-06-10 — Phase 4: Google provider (official genai SDK)
|
||||
|
||||
**Landed:** `provider/google` on google.golang.org/genai v1.59.0 (ADR-0011):
|
||||
|
||||
Reference in New Issue
Block a user