feat: migrate selected templates to AgentSeek API - #14
Conversation
webup
left a comment
There was a problem hiding this comment.
Requesting changes at ada42c5a21903891070efa21e810a9b4b6172f93.
The render-only checks are green, but fresh generated projects still have blocking runtime/dependency regressions:
- Make a generated AgentSeek API project start with its declared setup. A fresh
langchain/markdown-messageschild installs successfully, thenagentseek-api devexits while connecting to the undeclared SeekDB service atlocalhost:2881;/healthand assistants never become reachable. Please declare/configure the required database path (embedded or external) and add a fresh-child startup/health/assistant smoke test. - Fix the OpenVINO Python contract. That template still declares
requires-python = ">=3.10", while every availableagentseek-apirelease requires Python 3.12+, making the generated project unsatisfiable on 3.10 and 3.11. Raise the floor or use a compatible conditional dependency. - Honor the documented shell-over-
.envprecedence. The templates now state that exported shell variables win, butagentseek-apireloads the config env file after inheriting the child environment and overwrites them. Please depend on a fixed runtime and cover the composed launch path. - Keep
LANGGRAPH_HOSTfunctional indeepagents/mcp. The lifecycle now invokesagentseek-api devdirectly, bypassing the wrapper that consumed this variable, so a configured host is ignored. Pass the host explicitly or remove the unsupported setting and documentation. - Remove the duplicate
mcp>=1.27.1,<2declaration inlangchain/markdown-messagesand reconcile the duplicate/overlapping MCP constraint indeepagents/mcp.
Please validate at least one rendered child end to end: render, install only declared dependencies, start the backend with no undeclared local services, wait for /health, and exercise an assistant/run request.
|
Thanks for the detailed review. Addressed in ea4265c:
In addition to the generated-child smoke, I ran the full template set locally end to end yesterday: generated the projects, installed their declared dependencies, started their lifecycle services, and exercised the available frontend/API conversation paths. The five screenshots below are representative successful local runs from that session; they are evidence only and are not committed to this repository. The generated-child smoke now completes an actual thread/run/wait flow against a local fake OpenAI-compatible provider, so it exercises an assistant run without external credentials or an undeclared service. Validation: 105 template render tests passed with declared Git dependencies available; ruff and git diff --check also passed.
|
webup
left a comment
There was a problem hiding this comment.
Requesting changes at ea4265c7710ecc122f6d60461005b5d1e9abb8ff.
Thanks for fixing markdown-messages embedded startup, the OpenVINO Python floor, and the duplicate MCP declarations. The new markdown assistant/thread/run smoke is useful and green. Three blockers remain:
- [P1] Give every migrated local API template a declared, startable persistence path. A fresh
langchain/rubricrender installed only its generated dependencies, copied.env.example, and thenagentseek-api devexited withOperationalError (2003, "Can't connect to MySQL server on 'localhost'");/healthnever became ready. The new E2E covers only markdown-messages, while the same undeclared/missing persistence contract remains indeepagents/{content-builder,mcp,research,sandbox}andlangchain/{agentic-rag-hybrid,cli-remote,rubric}. Configure embedded persistence or declare and start the external database for each local runtime. - [P1] Depend on a tested release that actually preserves shell precedence. All migrated dependency declarations are unversioned, and a fresh resolve still selects published
agentseek-api==0.2.1. With shellOPENAI_API_KEY=shell-wins, itsbuild_runtime_env()returns the value from.env. API PR #69 fixes the ordering but is open, unchecked, unreleased, and its current internalpydantic-settingsimport also fails at the declared dependency floor. Release a corrected runtime, require a reviewed compatible range from every migrated template, and test the composed launch rather than only directagentseek-api dev. - [P2] Keep
deepagents/mcpnative-Windows compatible. The newsh -lccommand forwardsLANGGRAPH_HOSTon POSIX but fails on native Windows, andshis not declared in[tools]. Reuse the retained Python argv wrapper (or another cross-platform argv path) and run the lifecycle smoke on Windows as well as Linux/macOS.
Suggested pre-commit gate:
set -euo pipefail
export UV_CACHE_DIR="$(mktemp -d)/uv-cache"
uv sync --frozen --dev
make check
git diff --check
# Fresh-child proof: do not reuse the repository environment or a pre-running DB.
render_root="$(mktemp -d)"
uv run cookiecutter templates/langchain/rubric --no-input --output-dir "$render_root"
cd "$render_root/rubric_lab"
cp .env.example .env
uv sync --group test
uv run agentseek-api version
uv run agentseek-api dev --port 2026 --no-browser --no-reload >"$render_root/rubric-api.log" 2>&1 &
api_pid=$!
trap 'kill "$api_pid" 2>/dev/null || true' EXIT
for _ in $(seq 1 30); do
curl --fail --silent http://127.0.0.1:2026/health >/dev/null && break
kill -0 "$api_pid"
sleep 1
done
curl --fail --silent http://127.0.0.1:2026/health >/dev/nullExpected results: repository checks pass; the installed version is the new fixed release, not 0.2.1; Rubric reaches /health without anything pre-running on port 2881.
Please turn the fresh-child proof into a CI matrix over every migrated local-runtime template. For each row: render into a new directory, install only the generated manifest, copy the documented default env, start the complete lifecycle, wait for /health, then complete assistant -> thread -> run -> wait and assert status=success. Add these two matrix assertions:
- Put
SENTINEL=from-dotenvin the generated.env, exportSENTINEL=from-shell, launch throughagentseek dev, and have the backend assert the final runtime value isfrom-shell. - Run the
deepagents/mcprow on native Windows with a non-defaultLANGGRAPH_HOST; no undeclared POSIX shell may be required.
Finally, floor-test the runtime version before pinning it: importing its CLI in a clean environment with the exact declared minimum pydantic-settings must exit 0. This catches the internal-module import that current lockfiles hide.
|
已推送中间提交
验证:针对性测试 以下事项仍明确未完成,等待 AgentSeek API PR #69 合并并发布:新 runtime release、版本范围 pin、排除 |
8641c8f to
ea4265c
Compare
webup
left a comment
There was a problem hiding this comment.
Approved at exact head 9bcb3a8. All 16 hosted checks are green, including the native Windows SQLite lifecycle and proof upload. I audited all nine published-runtime artifacts: exact AgentSeek 0.1.2 and agentseek-api 0.2.3 wheel hashes, external import roots, successful contract and template graphs, valid runtime ports, and no secret, sentinel, userinfo, or checkout-path leakage.





Summary
This PR migrates eight selected templates from the LangGraph development server to the AgentSeek API runtime. Freshly generated projects declare the runtime themselves, launch it through
agentseek dev, and are exercised against exact published artifacts.Release coordinates:
v0.1.2at900f89518c32f8570d7648897394ed96a86a647a0.2.3v0.1.3after this PR is merged and taggedMigrated templates
deepagents/content-builderdeepagents/mcpdeepagents/researchlangchain/agentic-raglangchain/agentic-rag-hybridlangchain/cli-remotelangchain/markdown-messageslangchain/rubricEvery migrated template uses the exact
agentseek-api[embedded]==0.2.3release. The harness also pins AgentSeek0.1.2, Python3.12, uv0.9.28, and Node22where needed.Deliberately deferred
deepagents/sandboxremains on its reviewed LangGraph CLI runtime until it has a suitable local-provider fixture.langchain/agentic-rag-openvinoremains on its reviewed LangGraph CLI/OpenVINO runtime until its model-backed runtime can be proved in CI.Regression tests keep both templates outside the migration set.
Published-runtime proof
The hosted matrix contains nine generated-runtime cases:
deepagents/mcp.Each row fresh-renders the template, installs only declared dependencies from exact public artifacts, starts through
agentseek dev, verifies health and the contract graph, then creates an assistant/thread/run for the template's real graph and requires a successful result. The proof records artifact/import provenance, exact API lock resolution, runtime ports, graph results, and bounded process cleanup while rejecting checkout shadowing and secret-bearing diagnostics.Validation before push
The final merge gate is the complete nine-case hosted proof matrix on this exact head.
Tracking
Related: ob-labs/agentseek#170