Skip to main content
The root files separate agent behavior, local serving, public identity, and dependency ownership.

config.yaml

config.yaml selects the entrypoint, framework, authoring mode, Python runtime, deployment resources, scaling, environment, secret references, and permissions:
Use adk or langgraph. Managed mode is the portable default; advanced mode accepts a native framework target. See ADK and LangGraph. Unknown fields and invalid deployment values fail before authored Python loads. config.yaml describes deployment intent. The standalone development server does not provision its resources, inject secret declarations, scale replicas, or enforce network permissions.

server.yaml

server.yaml controls the standalone bind, remote-bind consent, request timeout, concurrency, request-size limit, and playground. Exact ${NAME} values are resolved and type-checked at startup. Authentication, persistence, TLS, secrets, and scaling do not belong in this file. See Server configuration.

agent-card.yaml

The Agent Card supplies public discovery metadata and declared capabilities. Compilation validates and copies it into the artifact. The server exposes the card at /.well-known/agent-card.json and includes its identity and route links in GET /agent.

pyproject.toml and uv.lock

Declare only agent-owned provider, tool, and ordinary Python dependencies in pyproject.toml. Do not declare Harnest, ADK, LangGraph, LangChain adapters, or other Harnest-owned framework packages. Each Harnest release supplies and checks a compatible framework version. Synchronize the project environment and commit the resulting lock:
The environment lives under AGENT_DIR/.harnest/environments/ and should not be activated. compile, test, and serve synchronize it automatically. CI can require the committed lock without changing it:

harnest.lock

harnest.lock records the agent repository schema, not the installed CLI or framework version. Do not edit it to migrate an old project. Run the read-only harnest upgrade AGENT_DIR plan, then explicitly apply the reviewed migration with --apply.