Skip to content

v0.18.0

Choose a tag to compare

@fvarrui fvarrui released this 06 Oct 22:55
· 101 commits to main since this release

This release changes defaults directly and removes options instead of deprecating them: while the version is 0.x, agent-kit keeps no backward compatibility. See the breaking changes below.

Breaking changes

  • Read and Glob only reach the agent's own folders (#28). They used to reach any file the user could, but deniedPaths: ~/.ssh, other projects' .env, the SDK's credentials.
    • Now they reach sourcesDir, extraWritableDirs, the new BaseSessionConfig.extraReadableDirs (read and searched, never written), and what the kit knows the agent needs: the run folder, the plugins, the project's .claude/ and the SDK's large tool results.
    • The project folder itself isn't readable.
    • Glob follows Read's rules and always respects deniedPaths.
    • The SDK's credentials are always denied.
    • Migration: list in extraReadableDirs any folder the agent reads outside its own.
  • The knowledge base has one way in, its knowledge_* tools (#31).
    • AgentSpec.knowledgeTools: "files", assets/knowledge-plugin-files/ and knowledgePluginRoot()'s variant are gone.
    • Migration: an agent with its own rules for its notes uses knowledgeBase: false.
  • The sources and the knowledge base each own their data, and the model connects them (#30). With a store that isn't the kit's files, the ingest status used to be wrong.
    • list_sources lists originals as present, missing or retired (when, why, what replaced it). Each has changedAt, when its content last changed. It no longer reports new/ingested/changed, nor summaries.
    • retire_source only retires: the model then retires or supersedes the summaries with the knowledge tools.
    • A summary's ingested is set by the store when it's created or rewritten. Its file is kept as given (relative to the sources folder). The index shows both, by page id.
    • knowledge_check keeps to links, orphans and links to retired pages.
    • The sources have their own prompt section (sourcesPromptSection), with or without a knowledge base.
    • Gone or changed: listSources(sourcesDir), retireSource(sourcesDir, …), knowledgePromptSection({ withSources, pageTypes, preferences }), recordIngest, CheckReport.missingOriginals, and the sourcesDir options of createFileKnowledgeStore and createKnowledgeServer.

New features

  • The person's preferences in the project's knowledge base (#33).
    • A fifth kit page type, preference, holds how the person wants things done in this project ("rubrics go in tables").
    • The knowledge base's prompt section lists them by title, up to 20, and tells the agent to save one as its first action when the person states or corrects a way of working.
    • Only from what the person says in the chat, never from a document, page or tool result.
  • skills: "plugins" offers only the skills of the plugins the session loads (the agent's, the knowledge base's, agent-help's), without naming them. Without it, a session offers about twenty skills that come with the SDK itself.

Fixes

  • Sessions no longer inherit the runner's claude.ai connectors (Drive, Gmail…), which the CLI loads whatever settingSources says (#32).
  • Pages are written in the language the agent replies in. The tools asked for "the person's language", which the model read as the language of the account's name: an English chat got Spanish pages. The language line now covers everything the agent keeps.
  • knowledge_index links pages by id, not by file path; index.md on disk keeps file links.
  • Retiring a page asks the person once: the tool asks itself, and the model no longer asks first.
  • A page body sent with escaped newlines gets them back.

Documentation

  • "Knowledge base and sources", "The person's preferences" and "What the agent can read" sections.
  • SDK behaviors found on the way: plugin skills are named after their folder; about twenty skills ship with the SDK; claude.ai connectors; how the language of the person's name pulls what the agent writes.
  • ADR-025 records the design of extensions on Claude Code plugins and marketplaces (#29), whose next phases come in later releases.