Codex CLI was talking to my OpenAI-compatible gateway just fine. Codex Desktop was not.

Same ~/.codex/config.toml. Same custom provider. Same machine. Desktop failed immediately with:

1
Missing environment variable: CLI_PROXY_API_KEY

The provider was not the problem. The process environment was.

Read More

Part 5 ended with a debt: autonomy I am willing to grant, and guardrails that hold even when the model would rather keep going.

This is Part 6 of 6 in my Agentic Coding with Claude Code series. The working model I am keeping is simple: eval tells me whether the loop did the job. Guardrails decide what the loop is allowed to do even when the model wants another hop. Bounded autonomy is the grant: which agents, which tools, how many turns, when a human is required.

This is the series closer. I will not rewrite Parts 1 through 5. I will bound the loop those posts already built.

Read More

Part 4 ended with a debt: whether the loop is actually doing the job. When a skip was correct, when a tool lied, and when the audit trail is the only honest record.

This is Part 5 of 6 in my Agentic Coding with Claude Code series. The working model I am keeping is simple: evaluation is how I score a run. Observability is how I see the run. Structured output is the seam between them.

A harness that cannot tell success from a polite hallucination is a demo. Later I will talk about bounded autonomy. This one stays on scoring the loop and seeing it.

Read More

Part 3 ended with a debt: tools that live outside the process, MCP servers, how they enter the window, and how to keep that surface small.

This is Part 4 of 6 in my Agentic Coding with Claude Code series. The working model I am keeping is simple: the model still reasons. The harness still decides. MCP is how tools and context live outside the process and still enter the window as a governed surface.

Later posts will cover evaluation and observability, then bounded autonomy. This one stays on the MCP boundary.

Read More

Part 2 ended with a debt: when I own the runtime, I have to implement trim, a facts block, tiered compress, and placement myself. Claude Code already does a version of that. A product I ship does not get it for free.

This is Part 3 of 6 in my Agentic Coding with Claude Code series. The working model I am keeping is simple: the model reasons, the harness decides what happens next.

Claude Code is one harness. The Agent SDK is that same loop as a library. The Messages API is the loop with the cover off: every response has a stop_reason, and your code chooses whether to run a tool, ask the user, route, escalate, or halt.

Later posts will cover MCP, evals, and guardrails. This one stays on the runtime around the model.

Read More

In Part 1, I treated Claude Code as a bounded loop: perceive, reason, act, then feed the evidence back in. The reasoning engine is only as good as the working set it sees. A precise goal still fails if the window is full of directory trees, stale chat, and a vague tool contract.

This is Part 2 of 6 in my Agentic Coding with Claude Code series. The working model I am keeping is simple: context is assembled, not typed, and it is a budget, not a bucket.

CLAUDE.md, path-scoped rules, skills, memory, tool results, and the conversation all compete for the same tokens. Unfiltered tool output is paid for on every later turn. The job is to load the right slice at the right time.

Later posts will cover the harness and Agent SDK, MCP, evals, and guardrails. This one stays on the context layer that shapes every decision in the loop.

Read More

Source: Cordis 在做什么:从 DeepSeek Harness 看 by Antinomie on antinomie.org. The piece is the site’s current homepage post.

DeepSeek Harness (DSH) is an agent harness built on Cordis. The first thing that clicks is not a privileged core loop. Model adapters, tool registries, session logs, and the agent loop itself are all plugins.

This is the first post in my DeepSeek Harness series. I am starting with a close reading of how DSH actually uses Cordis: services, inject, reversible ctx.effect registration, Loader, and the config layers that turn composition into data.

Read More

Most people first meet Claude Code as a chatbot in a terminal. That mental model is too small.

Ask it to explain a bug and it may answer once. Give it a concrete engineering objective and permission to work, and it can read the repository, trace the code, edit files, run tests, inspect the result, and change course when the evidence contradicts its plan. That repeated cycle is what makes the workflow agentic.

This is Part 1 of 6 in my Agentic Coding with Claude Code series. The working model I am keeping is simple: Claude Code is a bounded loop of perceive, reason, act, and feedback, not a longer chatbot reply.

Later posts will cover context, the harness / Agent SDK / stop-reason loop, MCP, evals, and guardrails. This one stays on the loop, the components, and the patterns.

Read More

I learned agentic AI concepts in Python - agent loops, tool calling, multi-agent coordination, production patterns. I even built my own Python assistant - MiuBot - with 10 chat channels, Temporal workflows, and multi-tenant workspaces. Python works well for most of these cases. But while building MiuBot, I kept hitting the same question: what happens when you need to serve many users concurrently over WebSocket with streaming responses? That’s when I discovered GoClaw from the NextLevelBuilder team, and it changed how I think about the problem.

GoClaw

Read More

After months of studying agentic AI patterns in theory - agent loops, tool calling, multi-agent coordination - I wanted to build something real. Not another tutorial project, but an AI assistant I could actually use daily, connected to the chat platforms I already live on. That’s how MiuBot started - forked from Nanobot, then reshaped into something quite different.

MiuBot

Read More

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×