88 lines
3.5 KiB
Org Mode
88 lines
3.5 KiB
Org Mode
:PROPERTIES:
|
|
:ID: a44d29c6-a686-451e-b4e6-b060c3aa7524
|
|
:CREATED: [2026-03-30 Mon 21:16]
|
|
:EDITED: [2026-04-07 Tue 13:42]
|
|
:END:
|
|
#+TITLE: SKILL: Anthropic Provider Agent (Universal Literate Note)
|
|
#+STARTUP: content
|
|
#+FILETAGS: :llm:provider:anthropic:claude:psf:
|
|
|
|
* Overview
|
|
The *Anthropic Provider Agent* integrates Anthropic's Claude family of models as a pluggable System 1 (neural) backend. It enables high-intelligence reasoning, drafting, and analysis within the PSF.
|
|
|
|
* Phase A: Demand (PRD)
|
|
:PROPERTIES:
|
|
:STATUS: FROZEN
|
|
:END:
|
|
|
|
** 1. Purpose
|
|
Define the interface for reliable communication with the Anthropic Messages API.
|
|
|
|
** 2. User Needs
|
|
- *Connectivity:* Reliable I/O with Claude models.
|
|
- *Configurability:* Model selection via Environment Configuration.
|
|
- *Context Management:* Leverage Claude's large context windows.
|
|
- *Safety:* Graceful error handling for API failures or missing keys.
|
|
|
|
** 3. Success Criteria
|
|
*** TODO API Authentication
|
|
*** TODO Model Resolution Loop
|
|
*** TODO Response Parsing Verification
|
|
|
|
|
|
* Phase B: Blueprint (PROTOCOL)
|
|
:PROPERTIES:
|
|
:STATUS: SIGNED
|
|
:END:
|
|
|
|
* Phase B: Blueprint (PROTOCOL)
|
|
|
|
** 1. Architectural Intent
|
|
|
|
The Anthropic Provider Agent will be designed as a stateless service responsible for managing communication with the Anthropic API. It will abstract away the complexities of API authentication, model selection, prompt construction, and response parsing, exposing a simple, functional interface to the broader PSF. The key architectural constraint is reliability and efficient context management. Error handling and API rate limiting must be gracefully managed to prevent cascading failures.
|
|
|
|
** 2. Semantic Interfaces (Lisp Signatures)
|
|
|
|
*** `anthropic-query`
|
|
|
|
This function is the primary entry point for interacting with the Anthropic models. It constructs the full prompt (system prompt + user query), sends it to the Anthropic API, and returns the model's response.
|
|
|
|
:lisp
|
|
(defun anthropic-query (query &key model system-prompt max-tokens temperature top-p stream?)
|
|
"Sends a query to the Anthropic API and returns the response.
|
|
|
|
QUERY: The user's question or instruction (string).
|
|
MODEL: (Optional) The Claude model to use (string, default 'claude-v1.3').
|
|
SYSTEM-PROMPT: (Optional) A system prompt to guide the model (string).
|
|
MAX-TOKENS: (Optional) The maximum number of tokens in the response (integer).
|
|
TEMPERATURE: (Optional) Sampling temperature (float, 0.0-1.0).
|
|
TOP-P: (Optional) Top-p sampling (float, 0.0-1.0).
|
|
STREAM?: (Optional) Whether to stream the response (boolean, default nil).
|
|
|
|
Returns: A string containing the model's generated response, or nil on error."
|
|
...)
|
|
|
|
*** `anthropic-authenticate`
|
|
|
|
This function handles API key authentication. It retrieves the API key from environment variables or a configuration file.
|
|
|
|
:lisp
|
|
(defun anthropic-authenticate ()
|
|
"Authenticates with the Anthropic API, retrieving the API key from the environment or config.
|
|
|
|
Returns: The API key (string), or nil on failure."
|
|
...)
|
|
|
|
*** `anthropic-model-resolve`
|
|
|
|
This function resolves a symbolic model name (e.g., 'most-powerful') to a specific Claude model identifier (e.g., 'claude-v1.3-100k').
|
|
|
|
:lisp
|
|
(defun anthropic-model-resolve (model-symbol)
|
|
"Resolves a symbolic model name to a specific Anthropic model identifier.
|
|
|
|
MODEL-SYMBOL: A symbolic name for the model (symbol).
|
|
|
|
Returns: The Anthropic model identifier (string), or nil if resolution fails."
|
|
...)
|