Handle deterministic agents without LLM creds
All checks were successful
build / build (push) Successful in 11s
All checks were successful
build / build (push) Successful in 11s
This commit is contained in:
@@ -31,6 +31,12 @@ never read `A2A_LITELLM_KEY`, `OPENAI_API_KEY`, provider keys, or platform
|
||||
secrets directly. If `ctx.llm.api_key` is empty, return a clear setup/config
|
||||
result before constructing a model or calling `create_a2a_deep_agent`.
|
||||
|
||||
For explicitly deterministic/local-logic agents that do not call an LLM, omit
|
||||
the concrete class `llm_provisioning` declaration, remove unused
|
||||
`LLMProvisioning` imports, do not read `ctx.llm`, and set
|
||||
`Pricing(..., caller_pays_llm=False, ...)`. A no-LLM agent must be callable
|
||||
without requiring the user's LLM credential.
|
||||
|
||||
`Pricing` only accepts `price_per_call_usd`, `caller_pays_llm`, and `notes`.
|
||||
Do not put `runtime.pricing.compute`, `runtime.pricing.total_usd`, `compute=`,
|
||||
or `total_usd=` in generated `agent.py`; the platform derives those values from
|
||||
|
||||
@@ -30,14 +30,19 @@ Check these items:
|
||||
arguments.
|
||||
- The public schema is small and stable. No unbounded command strings, hidden
|
||||
prompt fragments, or provider credentials as public inputs.
|
||||
- The implementation reads `ctx.llm` for both `CALLER_PROVIDED` and
|
||||
- LLM-backed implementations read `ctx.llm` for both `CALLER_PROVIDED` and
|
||||
`PLATFORM` LLM provisioning. `PLATFORM_OR_CALLER_PROVIDED` is acceptable
|
||||
only for trusted platform/meta agents and must also read `ctx.llm`.
|
||||
- Hosted generated/user agents should default to
|
||||
- Hosted generated/user agents that call an LLM should default to
|
||||
`llm_provisioning = LLMProvisioning.PLATFORM` and
|
||||
`Pricing(..., caller_pays_llm=True, ...)`. `LLMProvisioning.CALLER_PROVIDED`
|
||||
is acceptable for explicit BYOK wording. In both modes, the code must use
|
||||
`ctx.llm` and never read LiteLLM/provider keys directly.
|
||||
- Deterministic/local-logic agents that do not call an LLM omit the concrete
|
||||
`llm_provisioning` declaration, remove unused `LLMProvisioning` imports, do
|
||||
not read `ctx.llm`, and use `Pricing(..., caller_pays_llm=False, ...)`.
|
||||
Reject no-LLM agents that would require a user's LLM credential before
|
||||
invoking deterministic skills.
|
||||
- `Pricing` contains only `price_per_call_usd`, `caller_pays_llm`, and `notes`.
|
||||
Reject `runtime.pricing.compute`, `runtime.pricing.total_usd`, `compute=`, or
|
||||
`total_usd=` in `agent.py`; those are derived platform fields.
|
||||
|
||||
Reference in New Issue
Block a user