Procedural memory for LLM agents -- skill definitions + invocation history
Project description
3tears-agent-skills
Procedural memory for 3tears-based agents. Stores per-agent / per-user
labeled markdown procedures (body) and tool-surface modifications
(tool_additions, tool_restrictions) plus a prompt_mode enum
controlling how the body interacts with the consumer's base system prompt.
This package provides the schema + Collection layer:
agent_skills-- one row per skill (partition columnagent_id).agent_skill_invocations-- one row per skill load with synchronous outcome tracking populated by the consumer's post-LLM hook (partition columnagent_id; composite FK CASCADE on parent skill).- Two
BaseEntitysubclasses (AgentSkillEntity,AgentSkillInvocationEntity). - Two
BaseCollectionsubclasses exposing the public skill-registry API. - A trigger-maintained
search_vector(FTS forskill_listquery-filter ranking; NOT auto-load).
Agent tools and the per-turn composition renderer do not live here.
Migration registration
from threetears.agent.skills import register as register_skills
from threetears.core.data.migrations import MigrationRunner
runner = MigrationRunner()
register_skills(runner)
Migrations are agent-scoped and depend on conversations (the
invocation rows carry conversation_id -- ordering on apply, not an
FK constraint).
SkillRegistryClient Protocol -- why this package takes no ACL / tools deps
agent-memory (a sibling package) takes direct dependencies on
3tears-agent-acl and 3tears-agent-tools because its memory tools
need first-class ACL evaluator + tool-registry types in their public
surface. agent-skills deliberately diverges. The tool factories take
a thin SkillRegistryClient Protocol (three async methods,
acl_permits / list_skill_eligible_tools / get_tool_introspect,
plus a ConversationIdResolver / ActiveSkillProbe /
ActiveSkillSetter callable triple wired by the consumer) instead of
importing the ACL evaluator or the tool registry types directly.
The trade-off: callers must implement a small adapter (~10 lines over
their existing NamespaceCollection + ACL cache + in-process tool
registry), but agent-skills ships with zero hard deps beyond core
and langchain-core. The consumer wires this; tests mock it. The
ACL-via-evaluator approach targets the composition renderer, not the
tools surface.
Future sibling packages should follow whichever pattern their public surface demands -- direct deps when types are part of the contract, Protocol when the contract is method-shaped and the deps are incidental.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file 3tears_agent_skills-0.14.0.tar.gz.
File metadata
- Download URL: 3tears_agent_skills-0.14.0.tar.gz
- Upload date:
- Size: 75.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaf51e2aeca628545efc3101e76a5138a1752d9839197c6a2fe5d03a651a50de
|
|
| MD5 |
4c4253b93f4b727deb57c8df25ffcd36
|
|
| BLAKE2b-256 |
a9d61ae954f1b7d613238ebd7d6a70a04bab3730728aad4b14594674ac3b353b
|
File details
Details for the file 3tears_agent_skills-0.14.0-py3-none-any.whl.
File metadata
- Download URL: 3tears_agent_skills-0.14.0-py3-none-any.whl
- Upload date:
- Size: 47.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72f76791a8b5f6edc27cba95288b01c63dcd7c6219e7b931f342cf95c24e4ed1
|
|
| MD5 |
b9bcc7a6106776e61cbc82543ff7102c
|
|
| BLAKE2b-256 |
7e31a209fda8c95be33596657ca3f20d0c9515be56a95eb625e7cbfc4881a337
|