While testing the agentspan CLI against a live 3.32.0-rc.9 server, conductor agent compile <file> failed on every config with a 500:
Error: Cannot invoke "…AgentConfig.getName()" because "config" is null (status 500)
Digging in: agent compile POSTs the bare config to /api/agent/compile, but the server binds @RequestBody AgentStartRequest and reads the config from its agentConfig field — so it sees config == null. agent run already wraps correctly (startRequest{AgentConfig: def}); compile doesn't.
Confirmed with curl — same config, bare vs wrapped:
# bare (what the CLI sends) → 500 NPE
curl -X POST …/api/agent/compile -d '{"name":"foo","model":"openai/gpt-4o","instructions":"x","tools":[]}'
# wrapped → 200, returns the compiled workflowDef
curl -X POST …/api/agent/compile -d '{"agentConfig":{"name":"foo","model":"openai/gpt-4o","instructions":"x","tools":[]}}'
Repro
conductor agent init foo --model openai/gpt-4o
conductor agent compile foo.yaml # → 500
Fix: internal/agent/client.go → Compile should wrap the config the same way Run does (startRequest{AgentConfig: def}).
While testing the agentspan CLI against a live 3.32.0-rc.9 server,
conductor agent compile <file>failed on every config with a 500:Digging in:
agent compilePOSTs the bare config to/api/agent/compile, but the server binds@RequestBody AgentStartRequestand reads the config from itsagentConfigfield — so it seesconfig == null.agent runalready wraps correctly (startRequest{AgentConfig: def});compiledoesn't.Confirmed with curl — same config, bare vs wrapped:
Repro
conductor agent init foo --model openai/gpt-4o conductor agent compile foo.yaml # → 500Fix:
internal/agent/client.go→Compileshould wrap the config the same wayRundoes (startRequest{AgentConfig: def}).