feat: discoverable entry points — entrypoint tags + routing descriptions on all four nodes#104
Merged
Merged
Conversation
…ssue (Python) Both entry points now register with the control plane carrying an 'entrypoint' tag and a caller-facing description (when to pick build vs implement_issue), so a harness can discover them via af ls --entrypoints or the discovery API instead of hardcoding node knowledge. The remaining orchestrators self-describe through their docstring first paragraphs (agentfield >= 0.1.113 registers those automatically). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
build/implement_issue (and fast build) carry the same entrypoint tag and routing description as Python; the other orchestrators get the Python docstring summaries via an explicit map since Go has no docstrings. Descriptions transmit once the SDK pin advances to agentfield >= 0.1.113 (WithDescription already exists at the current pin, so this compiles today). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stration Floor bump (not just a compatible range) so Docker layer caches re-resolve and actually pull the SDK that transmits per-reasoner descriptions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
AbirAbbas
marked this pull request as ready for review
July 21, 2026 15:33
…on transmission go.mod pseudo-version + AGENTFIELD_SDK_REF in go/Dockerfile and ci.yml bumped together to the v0.1.113 release commit, so the Go nodes' WithDescription metadata actually reaches the control plane. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Companion to Agent-Field/agentfield#805 (node-declared reasoner descriptions + entry points in discovery). SWE-AF's callable surface becomes self-describing:
buildandimplement_issue(all four nodes, Python + Go) register anentrypointtag plus a routing description — when to pick the feature-level pipeline vs the issue-level sub-harness entry — so a main harness can discover them viaaf ls --entrypoints/GET /api/v1/discovery/capabilitiesinstead of hardcoding node knowledge. The remaining orchestrators (plan,execute,resolve,resume_build) self-describe from their docstring first paragraphs, which the new SDK registers automatically; the Go nodes mirror those texts explicitly.Verified live against a control plane built from the agentfield PR branch — both nodes re-registered and:
with identical output for
swe-planner-go, and docstring-defaulted descriptions on all 29 other reasoners with zero per-reasoner changes.Release gate — cleared
pyproject.toml/requirements.txtbump the floor toagentfield>=0.1.113(deliberate cache-busting bump) — that version must exist on PyPI before CI'spip install -e .[dev]can pass.AGENTFIELD_SDK_REFin go/Dockerfile and ci.yml bumped together), so the Go nodes transmit descriptions.Test plan
.env-free worktree against the new SDK — 1129 passed, 1 skipped + compileall cleango test -race ./...green against the agentfield PR branch via go.work (node parity tests included)af ls -e, discovery API, and catalog verified on a running stack (both nodes)🤖 Generated with Claude Code