cognitive-core 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +363 -2
- package/SKILL.md +193 -0
- package/dist/agents/index.d.ts +3 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +5 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/mock-provider.d.ts +23 -0
- package/dist/agents/mock-provider.d.ts.map +1 -0
- package/dist/agents/mock-provider.js +71 -0
- package/dist/agents/mock-provider.js.map +1 -0
- package/dist/agents/types.d.ts +98 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +44 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/atlas.d.ts +196 -0
- package/dist/atlas.d.ts.map +1 -0
- package/dist/atlas.js +373 -0
- package/dist/atlas.js.map +1 -0
- package/dist/bin/cognitive-core.d.ts +18 -0
- package/dist/bin/cognitive-core.d.ts.map +1 -0
- package/dist/bin/cognitive-core.js +419 -0
- package/dist/bin/cognitive-core.js.map +1 -0
- package/dist/embeddings/bm25.d.ts +104 -0
- package/dist/embeddings/bm25.d.ts.map +1 -0
- package/dist/embeddings/bm25.js +264 -0
- package/dist/embeddings/bm25.js.map +1 -0
- package/dist/embeddings/index.d.ts +12 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +16 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/manager.d.ts +112 -0
- package/dist/embeddings/manager.d.ts.map +1 -0
- package/dist/embeddings/manager.js +215 -0
- package/dist/embeddings/manager.js.map +1 -0
- package/dist/embeddings/provider.d.ts +101 -0
- package/dist/embeddings/provider.d.ts.map +1 -0
- package/dist/embeddings/provider.js +232 -0
- package/dist/embeddings/provider.js.map +1 -0
- package/dist/embeddings/vector-store.d.ts +101 -0
- package/dist/embeddings/vector-store.d.ts.map +1 -0
- package/dist/embeddings/vector-store.js +256 -0
- package/dist/embeddings/vector-store.js.map +1 -0
- package/dist/factory.d.ts +193 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +109 -0
- package/dist/factory.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/learning/analyzer.d.ts +110 -0
- package/dist/learning/analyzer.d.ts.map +1 -0
- package/dist/learning/analyzer.js +213 -0
- package/dist/learning/analyzer.js.map +1 -0
- package/dist/learning/effectiveness.d.ts +158 -0
- package/dist/learning/effectiveness.d.ts.map +1 -0
- package/dist/learning/effectiveness.js +251 -0
- package/dist/learning/effectiveness.js.map +1 -0
- package/dist/learning/index.d.ts +8 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +11 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/llm-extractor.d.ts +88 -0
- package/dist/learning/llm-extractor.d.ts.map +1 -0
- package/dist/learning/llm-extractor.js +372 -0
- package/dist/learning/llm-extractor.js.map +1 -0
- package/dist/learning/meta-learner.d.ts +80 -0
- package/dist/learning/meta-learner.d.ts.map +1 -0
- package/dist/learning/meta-learner.js +355 -0
- package/dist/learning/meta-learner.js.map +1 -0
- package/dist/learning/pipeline.d.ts +65 -0
- package/dist/learning/pipeline.d.ts.map +1 -0
- package/dist/learning/pipeline.js +170 -0
- package/dist/learning/pipeline.js.map +1 -0
- package/dist/learning/playbook-extractor.d.ts +113 -0
- package/dist/learning/playbook-extractor.d.ts.map +1 -0
- package/dist/learning/playbook-extractor.js +523 -0
- package/dist/learning/playbook-extractor.js.map +1 -0
- package/dist/learning/usage-inference.d.ts +82 -0
- package/dist/learning/usage-inference.d.ts.map +1 -0
- package/dist/learning/usage-inference.js +261 -0
- package/dist/learning/usage-inference.js.map +1 -0
- package/dist/mcp/index.d.ts +6 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +6 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/playbook-server.d.ts +120 -0
- package/dist/mcp/playbook-server.d.ts.map +1 -0
- package/dist/mcp/playbook-server.js +427 -0
- package/dist/mcp/playbook-server.js.map +1 -0
- package/dist/memory/curated-loader.d.ts +62 -0
- package/dist/memory/curated-loader.d.ts.map +1 -0
- package/dist/memory/curated-loader.js +106 -0
- package/dist/memory/curated-loader.js.map +1 -0
- package/dist/memory/experience.d.ts +122 -0
- package/dist/memory/experience.d.ts.map +1 -0
- package/dist/memory/experience.js +392 -0
- package/dist/memory/experience.js.map +1 -0
- package/dist/memory/index.d.ts +6 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +9 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/meta.d.ts +90 -0
- package/dist/memory/meta.d.ts.map +1 -0
- package/dist/memory/meta.js +362 -0
- package/dist/memory/meta.js.map +1 -0
- package/dist/memory/playbook.d.ts +133 -0
- package/dist/memory/playbook.d.ts.map +1 -0
- package/dist/memory/playbook.js +357 -0
- package/dist/memory/playbook.js.map +1 -0
- package/dist/memory/system.d.ts +167 -0
- package/dist/memory/system.d.ts.map +1 -0
- package/dist/memory/system.js +383 -0
- package/dist/memory/system.js.map +1 -0
- package/dist/runtime/backends/acp.d.ts +67 -0
- package/dist/runtime/backends/acp.d.ts.map +1 -0
- package/dist/runtime/backends/acp.js +290 -0
- package/dist/runtime/backends/acp.js.map +1 -0
- package/dist/runtime/backends/index.d.ts +5 -0
- package/dist/runtime/backends/index.d.ts.map +1 -0
- package/dist/runtime/backends/index.js +6 -0
- package/dist/runtime/backends/index.js.map +1 -0
- package/dist/runtime/backends/mock.d.ts +67 -0
- package/dist/runtime/backends/mock.d.ts.map +1 -0
- package/dist/runtime/backends/mock.js +153 -0
- package/dist/runtime/backends/mock.js.map +1 -0
- package/dist/runtime/backends/subprocess.d.ts +56 -0
- package/dist/runtime/backends/subprocess.d.ts.map +1 -0
- package/dist/runtime/backends/subprocess.js +260 -0
- package/dist/runtime/backends/subprocess.js.map +1 -0
- package/dist/runtime/flows/learning.d.ts +73 -0
- package/dist/runtime/flows/learning.d.ts.map +1 -0
- package/dist/runtime/flows/learning.js +116 -0
- package/dist/runtime/flows/learning.js.map +1 -0
- package/dist/runtime/flows/validation.d.ts +122 -0
- package/dist/runtime/flows/validation.d.ts.map +1 -0
- package/dist/runtime/flows/validation.js +223 -0
- package/dist/runtime/flows/validation.js.map +1 -0
- package/dist/runtime/index.d.ts +6 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +8 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/manager.d.ts +116 -0
- package/dist/runtime/manager.d.ts.map +1 -0
- package/dist/runtime/manager.js +416 -0
- package/dist/runtime/manager.js.map +1 -0
- package/dist/runtime/types.d.ts +138 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +2 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/search/evaluator.d.ts +102 -0
- package/dist/search/evaluator.d.ts.map +1 -0
- package/dist/search/evaluator.js +352 -0
- package/dist/search/evaluator.js.map +1 -0
- package/dist/search/index.d.ts +7 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +11 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/refinement-loop.d.ts +73 -0
- package/dist/search/refinement-loop.d.ts.map +1 -0
- package/dist/search/refinement-loop.js +245 -0
- package/dist/search/refinement-loop.js.map +1 -0
- package/dist/search/refinement-types.d.ts +154 -0
- package/dist/search/refinement-types.d.ts.map +1 -0
- package/dist/search/refinement-types.js +99 -0
- package/dist/search/refinement-types.js.map +1 -0
- package/dist/search/router.d.ts +61 -0
- package/dist/search/router.d.ts.map +1 -0
- package/dist/search/router.js +197 -0
- package/dist/search/router.js.map +1 -0
- package/dist/search/solver.d.ts +75 -0
- package/dist/search/solver.d.ts.map +1 -0
- package/dist/search/solver.js +216 -0
- package/dist/search/solver.js.map +1 -0
- package/dist/search/verification-runner.d.ts +125 -0
- package/dist/search/verification-runner.d.ts.map +1 -0
- package/dist/search/verification-runner.js +440 -0
- package/dist/search/verification-runner.js.map +1 -0
- package/dist/surfacing/index.d.ts +2 -0
- package/dist/surfacing/index.d.ts.map +1 -0
- package/dist/surfacing/index.js +2 -0
- package/dist/surfacing/index.js.map +1 -0
- package/dist/surfacing/skill-library.d.ts +158 -0
- package/dist/surfacing/skill-library.d.ts.map +1 -0
- package/dist/surfacing/skill-library.js +429 -0
- package/dist/surfacing/skill-library.js.map +1 -0
- package/dist/types/config.d.ts +1113 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +274 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +14 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memory.d.ts +339 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +207 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/meta.d.ts +146 -0
- package/dist/types/meta.d.ts.map +1 -0
- package/dist/types/meta.js +51 -0
- package/dist/types/meta.js.map +1 -0
- package/dist/types/outcome.d.ts +42 -0
- package/dist/types/outcome.d.ts.map +1 -0
- package/dist/types/outcome.js +50 -0
- package/dist/types/outcome.js.map +1 -0
- package/dist/types/playbook.d.ts +119 -0
- package/dist/types/playbook.d.ts.map +1 -0
- package/dist/types/playbook.js +71 -0
- package/dist/types/playbook.js.map +1 -0
- package/dist/types/step.d.ts +44 -0
- package/dist/types/step.d.ts.map +1 -0
- package/dist/types/step.js +32 -0
- package/dist/types/step.js.map +1 -0
- package/dist/types/task.d.ts +91 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +39 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/trajectory.d.ts +221 -0
- package/dist/types/trajectory.d.ts.map +1 -0
- package/dist/types/trajectory.js +60 -0
- package/dist/types/trajectory.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/similarity.d.ts +31 -0
- package/dist/utils/similarity.d.ts.map +1 -0
- package/dist/utils/similarity.js +107 -0
- package/dist/utils/similarity.js.map +1 -0
- package/dist/utils/storage.d.ts +106 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/storage.js +203 -0
- package/dist/utils/storage.js.map +1 -0
- package/dist/utils/validation.d.ts +129 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +171 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +61 -9
- package/scripts/migrate-to-playbooks.ts +307 -0
- package/src/agents/index.ts +14 -0
- package/src/agents/mock-provider.ts +93 -0
- package/src/agents/types.ts +137 -0
- package/src/atlas.ts +560 -0
- package/src/bin/cognitive-core.ts +470 -0
- package/src/embeddings/bm25.ts +337 -0
- package/src/embeddings/index.ts +39 -0
- package/src/embeddings/manager.ts +288 -0
- package/src/embeddings/provider.ts +311 -0
- package/src/embeddings/vector-store.ts +353 -0
- package/src/factory.ts +263 -0
- package/src/index.ts +246 -0
- package/src/learning/analyzer.ts +335 -0
- package/src/learning/effectiveness.ts +428 -0
- package/src/learning/index.ts +58 -0
- package/src/learning/llm-extractor.ts +542 -0
- package/src/learning/meta-learner.ts +516 -0
- package/src/learning/pipeline.ts +244 -0
- package/src/learning/playbook-extractor.ts +702 -0
- package/src/learning/usage-inference.ts +372 -0
- package/src/mcp/index.ts +12 -0
- package/src/mcp/playbook-server.ts +565 -0
- package/src/memory/curated-loader.ts +160 -0
- package/src/memory/experience.ts +515 -0
- package/src/memory/index.ts +27 -0
- package/src/memory/meta.ts +506 -0
- package/src/memory/playbook.ts +493 -0
- package/src/memory/system.ts +551 -0
- package/src/runtime/backends/acp.ts +378 -0
- package/src/runtime/backends/index.ts +24 -0
- package/src/runtime/backends/mock.ts +218 -0
- package/src/runtime/backends/subprocess.ts +356 -0
- package/src/runtime/flows/learning.ts +183 -0
- package/src/runtime/flows/validation.ts +381 -0
- package/src/runtime/index.ts +53 -0
- package/src/runtime/manager.ts +541 -0
- package/src/runtime/types.ts +157 -0
- package/src/search/evaluator.ts +474 -0
- package/src/search/index.ts +59 -0
- package/src/search/refinement-loop.ts +363 -0
- package/src/search/refinement-types.ts +159 -0
- package/src/search/router.ts +261 -0
- package/src/search/solver.ts +303 -0
- package/src/search/verification-runner.ts +570 -0
- package/src/surfacing/index.ts +6 -0
- package/src/surfacing/skill-library.ts +594 -0
- package/src/types/config.ts +333 -0
- package/src/types/index.ts +130 -0
- package/src/types/memory.ts +270 -0
- package/src/types/meta.ts +218 -0
- package/src/types/outcome.ts +66 -0
- package/src/types/playbook.ts +196 -0
- package/src/types/step.ts +40 -0
- package/src/types/task.ts +52 -0
- package/src/types/trajectory.ts +80 -0
- package/src/utils/index.ts +38 -0
- package/src/utils/similarity.ts +139 -0
- package/src/utils/storage.ts +249 -0
- package/src/utils/validation.ts +286 -0
- package/tests/embeddings/bm25.test.ts +130 -0
- package/tests/embeddings/manager.test.ts +205 -0
- package/tests/integration/atlas.test.ts +266 -0
- package/tests/integration/e2e.test.ts +929 -0
- package/tests/learning/analyzer.test.ts +426 -0
- package/tests/learning/effectiveness.test.ts +542 -0
- package/tests/learning/pipeline.test.ts +176 -0
- package/tests/learning/playbook-extractor-provenance.test.ts +114 -0
- package/tests/learning/usage-inference.test.ts +254 -0
- package/tests/mcp/playbook-server.test.ts +252 -0
- package/tests/memory/experience.test.ts +198 -0
- package/tests/memory/playbook.test.ts +338 -0
- package/tests/memory/provenance.test.ts +639 -0
- package/tests/memory/system.test.ts +325 -0
- package/tests/runtime/agent-manager.test.ts +512 -0
- package/tests/runtime/mock-backend.test.ts +248 -0
- package/tests/search/refinement-loop.test.ts +468 -0
- package/tests/search/refinement.test.ts +267 -0
- package/tests/search/router.test.ts +427 -0
- package/tests/surfacing/skill-library.test.ts +292 -0
- package/tests/types/outcome.test.ts +147 -0
- package/tests/types/step.test.ts +133 -0
- package/tests/types/task.test.ts +158 -0
- package/tests/types/trajectory.test.ts +253 -0
- package/tests/utils/similarity.test.ts +188 -0
- package/tests/utils/validation.test.ts +252 -0
- package/tsconfig.json +25 -0
- package/vitest.config.ts +22 -0
- package/index.d.ts +0 -4
- package/index.js +0 -4
package/dist/index.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas - Adaptive Trajectory Learning and Abstraction System
|
|
3
|
+
*
|
|
4
|
+
* A TypeScript-native cognitive core for building agents that learn
|
|
5
|
+
* from experience. Extracts playbooks from problem-solving trajectories
|
|
6
|
+
* to guide future task solving.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { createAtlas, createTask } from 'cognitive-core';
|
|
11
|
+
*
|
|
12
|
+
* const atlas = createAtlas();
|
|
13
|
+
* await atlas.init();
|
|
14
|
+
*
|
|
15
|
+
* // Set your LLM provider
|
|
16
|
+
* atlas.setProvider(myProvider);
|
|
17
|
+
*
|
|
18
|
+
* // Solve a task
|
|
19
|
+
* const task = createTask({
|
|
20
|
+
* domain: 'code',
|
|
21
|
+
* description: 'Write a function that...',
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* const result = await atlas.solve(task);
|
|
25
|
+
* console.log(result.trajectory.outcome);
|
|
26
|
+
*
|
|
27
|
+
* // Close when done
|
|
28
|
+
* await atlas.close();
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
// Main Atlas class
|
|
32
|
+
export { Atlas, createAtlas, createAtlasWithProvider, createAtlasWithAgents, } from './atlas.js';
|
|
33
|
+
// Types
|
|
34
|
+
export * from './types/index.js';
|
|
35
|
+
// Memory system
|
|
36
|
+
export { MemorySystem, createMemorySystem, ExperienceMemory,
|
|
37
|
+
// Playbook-based memory
|
|
38
|
+
PlaybookLibrary, createPlaybookLibrary,
|
|
39
|
+
// Meta-learning memory
|
|
40
|
+
MetaMemory, createMetaMemory, } from './memory/index.js';
|
|
41
|
+
// Learning engine
|
|
42
|
+
export { LearningPipeline, createLearningPipeline, TrajectoryAnalyzer, createAnalyzer,
|
|
43
|
+
// Playbook-based learning
|
|
44
|
+
PlaybookExtractor, createPlaybookExtractor,
|
|
45
|
+
// Meta-learning
|
|
46
|
+
MetaLearner, createMetaLearner,
|
|
47
|
+
// Usage inference
|
|
48
|
+
PlaybookUsageInference, createUsageInference,
|
|
49
|
+
// LLM-based extraction
|
|
50
|
+
LLMPlaybookExtractor, createLLMExtractor, } from './learning/index.js';
|
|
51
|
+
// Search/solving
|
|
52
|
+
export { TaskRouter, createRouter, DirectSolver, createSolver,
|
|
53
|
+
// Refinement
|
|
54
|
+
SolutionEvaluator, createSolutionEvaluator, RefinementLoop, createRefinementLoop, createEvaluationResult, scoreToQuality, isQualityAcceptable,
|
|
55
|
+
// Verification runner
|
|
56
|
+
VerificationRunner, createVerificationRunner, TestRunners, } from './search/index.js';
|
|
57
|
+
// Agents
|
|
58
|
+
export { Agent, MockLLMProvider, createMockProvider, } from './agents/index.js';
|
|
59
|
+
// Utilities
|
|
60
|
+
export { cosineSimilarity, textSimilarity, findTopK, JsonStore, saveJson, loadJson, } from './utils/index.js';
|
|
61
|
+
// Embeddings - Vector search and similarity
|
|
62
|
+
export { OpenAIEmbeddingProvider, VoyageEmbeddingProvider, LocalEmbeddingProvider, createEmbeddingProvider,
|
|
63
|
+
// BM25 text search fallback
|
|
64
|
+
BM25Index, createBM25Index,
|
|
65
|
+
// Vector store
|
|
66
|
+
SqliteVectorStore, createVectorStore,
|
|
67
|
+
// Embedding manager
|
|
68
|
+
EmbeddingManager, createEmbeddingManager, } from './embeddings/index.js';
|
|
69
|
+
// Runtime - Agent management and flows
|
|
70
|
+
export {
|
|
71
|
+
// Manager
|
|
72
|
+
AgentManager, createAgentManager, DefaultKnowledgeInjector, DefaultTrajectoryExtractor,
|
|
73
|
+
// Backends
|
|
74
|
+
SubprocessBackend, createSubprocessBackend, claudeCodeConfig, MockBackend, createMockBackend, ACPBackend, createACPBackend, claudeCodeACPConfig, claudeCodeDirectConfig,
|
|
75
|
+
// Flows
|
|
76
|
+
LearningFlow, createLearningFlow, ValidationFlow, createValidationFlow, } from './runtime/index.js';
|
|
77
|
+
// Surfacing - Skill library for agent consumption
|
|
78
|
+
export { SkillLibrary, createSkillLibrary, } from './surfacing/index.js';
|
|
79
|
+
// MCP Server - On-demand playbook access
|
|
80
|
+
// @deprecated Use the CLI (bin/cognitive-core) + SKILL.md approach instead
|
|
81
|
+
export { PlaybookMCPServer, createPlaybookMCPServer, } from './mcp/index.js';
|
|
82
|
+
// Factory - Unified interface for external integration (e.g., skill-tree)
|
|
83
|
+
export { createCognitiveCoreFactory, cognitiveCoreFactory, } from './factory.js';
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,mBAAmB;AACnB,OAAO,EACL,KAAK,EACL,WAAW,EACX,uBAAuB,EACvB,qBAAqB,GAGtB,MAAM,YAAY,CAAC;AAEpB,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB;AAGhB,wBAAwB;AACxB,eAAe,EACf,qBAAqB;AAErB,uBAAuB;AACvB,UAAU,EACV,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,kBAAkB;AAClB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc;AAId,0BAA0B;AAC1B,iBAAiB,EACjB,uBAAuB;AAIvB,gBAAgB;AAChB,WAAW,EACX,iBAAiB;AAEjB,kBAAkB;AAClB,sBAAsB,EACtB,oBAAoB;AAGpB,uBAAuB;AACvB,oBAAoB,EACpB,kBAAkB,GAGnB,MAAM,qBAAqB,CAAC;AAE7B,iBAAiB;AACjB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY;AAGZ,aAAa;AACb,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,mBAAmB;AAWnB,sBAAsB;AACtB,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAE3B,SAAS;AACT,OAAO,EACL,KAAK,EACL,eAAe,EACf,kBAAkB,GAKnB,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAE1B,4CAA4C;AAC5C,OAAO,EAIL,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB;AACvB,4BAA4B;AAC5B,SAAS,EACT,eAAe;AAEf,eAAe;AACf,iBAAiB,EACjB,iBAAiB;AAEjB,oBAAoB;AACpB,gBAAgB,EAChB,sBAAsB,GAGvB,MAAM,uBAAuB,CAAC;AAE/B,uCAAuC;AACvC,OAAO;AACL,UAAU;AACV,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B;AAC1B,WAAW;AACX,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB;AACtB,QAAQ;AACR,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GAoBrB,MAAM,oBAAoB,CAAC;AAE5B,kDAAkD;AAClD,OAAO,EACL,YAAY,EACZ,kBAAkB,GAGnB,MAAM,sBAAsB,CAAC;AAE9B,yCAAyC;AACzC,2EAA2E;AAC3E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GAKxB,MAAM,gBAAgB,CAAC;AAExB,0EAA0E;AAC1E,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,GASrB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { Trajectory, CreditStrategy } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analysis result from trajectory examination
|
|
4
|
+
*/
|
|
5
|
+
export interface AnalysisResult {
|
|
6
|
+
/** Whether the trajectory succeeded */
|
|
7
|
+
success: boolean;
|
|
8
|
+
/** Indices of key steps (above attribution threshold) */
|
|
9
|
+
keySteps: number[];
|
|
10
|
+
/** Attribution score for each step */
|
|
11
|
+
stepAttribution: number[];
|
|
12
|
+
/** Detected error patterns */
|
|
13
|
+
errorPatterns: ErrorPattern[];
|
|
14
|
+
/** Whether this trajectory is worth extracting patterns from */
|
|
15
|
+
abstractable: boolean;
|
|
16
|
+
/** Suggested training examples */
|
|
17
|
+
trainingExamples: TrainingExample[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Detected error pattern
|
|
21
|
+
*/
|
|
22
|
+
export interface ErrorPattern {
|
|
23
|
+
type: string;
|
|
24
|
+
signature: string;
|
|
25
|
+
description: string;
|
|
26
|
+
suggestedFix?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Training example extracted from trajectory
|
|
30
|
+
*/
|
|
31
|
+
export interface TrainingExample {
|
|
32
|
+
input: string;
|
|
33
|
+
output: string;
|
|
34
|
+
stepIndex: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Configuration for trajectory analyzer
|
|
38
|
+
*/
|
|
39
|
+
export interface AnalyzerConfig {
|
|
40
|
+
/** Credit decay factor for exponential decay (default: 0.5) */
|
|
41
|
+
creditDecayFactor: number;
|
|
42
|
+
/** Minimum action repetitions to flag as repetition pattern (default: 3) */
|
|
43
|
+
actionRepetitionThreshold: number;
|
|
44
|
+
/** Attribution threshold for key step identification (default: 0.15) */
|
|
45
|
+
attributionThreshold: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Credit assignment strategies
|
|
49
|
+
*/
|
|
50
|
+
export type CreditAssignmentFn = (trajectory: Trajectory, config: AnalyzerConfig) => Promise<number[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Simple exponential decay credit assignment
|
|
53
|
+
* Last step gets 1.0, decays exponentially backwards
|
|
54
|
+
*/
|
|
55
|
+
export declare function simpleCreditAssignment(trajectory: Trajectory, config: AnalyzerConfig): Promise<number[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Outcome-based credit assignment
|
|
58
|
+
* Successful trajectories get higher credit for all steps
|
|
59
|
+
*/
|
|
60
|
+
export declare function outcomeCreditAssignment(trajectory: Trajectory, _config: AnalyzerConfig): Promise<number[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Get credit assignment function by strategy type
|
|
63
|
+
*/
|
|
64
|
+
export declare function getCreditAssignmentFn(strategy: CreditStrategy): CreditAssignmentFn;
|
|
65
|
+
/**
|
|
66
|
+
* Trajectory Analyzer
|
|
67
|
+
* Analyzes trajectories to extract learning signals
|
|
68
|
+
*/
|
|
69
|
+
export declare class TrajectoryAnalyzer {
|
|
70
|
+
private creditFn;
|
|
71
|
+
private config;
|
|
72
|
+
constructor(strategy?: CreditStrategy, config?: Partial<AnalyzerConfig>);
|
|
73
|
+
/**
|
|
74
|
+
* Analyze a trajectory
|
|
75
|
+
*/
|
|
76
|
+
analyze(trajectory: Trajectory): Promise<AnalysisResult>;
|
|
77
|
+
/**
|
|
78
|
+
* Detect error patterns in failed trajectories
|
|
79
|
+
*/
|
|
80
|
+
private detectErrorPatterns;
|
|
81
|
+
/**
|
|
82
|
+
* Assess whether a trajectory is worth abstracting patterns from
|
|
83
|
+
*/
|
|
84
|
+
private assessAbstractability;
|
|
85
|
+
/**
|
|
86
|
+
* Extract training examples from trajectory
|
|
87
|
+
*/
|
|
88
|
+
private extractTrainingExamples;
|
|
89
|
+
/**
|
|
90
|
+
* Set credit assignment strategy
|
|
91
|
+
*/
|
|
92
|
+
setStrategy(strategy: CreditStrategy): void;
|
|
93
|
+
/**
|
|
94
|
+
* Set attribution threshold
|
|
95
|
+
*/
|
|
96
|
+
setThreshold(threshold: number): void;
|
|
97
|
+
/**
|
|
98
|
+
* Update configuration
|
|
99
|
+
*/
|
|
100
|
+
updateConfig(config: Partial<AnalyzerConfig>): void;
|
|
101
|
+
/**
|
|
102
|
+
* Get current configuration
|
|
103
|
+
*/
|
|
104
|
+
getConfig(): AnalyzerConfig;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create a trajectory analyzer
|
|
108
|
+
*/
|
|
109
|
+
export declare function createAnalyzer(strategy?: CreditStrategy, config?: Partial<AnalyzerConfig>): TrajectoryAnalyzer;
|
|
110
|
+
//# sourceMappingURL=analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/learning/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sCAAsC;IACtC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,8BAA8B;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,gEAAgE;IAChE,YAAY,EAAE,OAAO,CAAC;IACtB,kCAAkC;IAClC,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,yBAAyB,EAAE,MAAM,CAAC;IAClC,wEAAwE;IACxE,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAQD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEvB;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,GACvB,kBAAkB,CAepB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,MAAM,CAAiB;gBAEnB,QAAQ,GAAE,cAAyB,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAKjF;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAyC9D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmD3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA8B/B;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAI3C;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAInD;;OAEG;IACH,SAAS,IAAI,cAAc;CAG5B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,GAAE,cAAyB,EACnC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,kBAAkB,CAEpB"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
const DEFAULT_ANALYZER_CONFIG = {
|
|
2
|
+
creditDecayFactor: 0.5,
|
|
3
|
+
actionRepetitionThreshold: 3,
|
|
4
|
+
attributionThreshold: 0.15,
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Simple exponential decay credit assignment
|
|
8
|
+
* Last step gets 1.0, decays exponentially backwards
|
|
9
|
+
*/
|
|
10
|
+
export function simpleCreditAssignment(trajectory, config) {
|
|
11
|
+
const n = trajectory.steps.length;
|
|
12
|
+
const scores = [];
|
|
13
|
+
const decay = config.creditDecayFactor;
|
|
14
|
+
for (let i = 0; i < n; i++) {
|
|
15
|
+
const distanceFromEnd = n - 1 - i;
|
|
16
|
+
scores.push(Math.pow(decay, distanceFromEnd));
|
|
17
|
+
}
|
|
18
|
+
return Promise.resolve(scores);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Outcome-based credit assignment
|
|
22
|
+
* Successful trajectories get higher credit for all steps
|
|
23
|
+
*/
|
|
24
|
+
export function outcomeCreditAssignment(trajectory, _config) {
|
|
25
|
+
const baseScores = trajectory.steps.map(() => trajectory.outcome.success ? 0.7 : 0.3);
|
|
26
|
+
// Boost last step for successful trajectories
|
|
27
|
+
if (trajectory.outcome.success && baseScores.length > 0) {
|
|
28
|
+
baseScores[baseScores.length - 1] = 1.0;
|
|
29
|
+
}
|
|
30
|
+
return Promise.resolve(baseScores);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get credit assignment function by strategy type
|
|
34
|
+
*/
|
|
35
|
+
export function getCreditAssignmentFn(strategy) {
|
|
36
|
+
switch (strategy) {
|
|
37
|
+
case 'simple':
|
|
38
|
+
return simpleCreditAssignment;
|
|
39
|
+
case 'llm':
|
|
40
|
+
// LLM-based credit assignment would require an LLM client
|
|
41
|
+
// Fall back to simple for now
|
|
42
|
+
return simpleCreditAssignment;
|
|
43
|
+
case 'counterfactual':
|
|
44
|
+
// Counterfactual requires environment replay
|
|
45
|
+
// Fall back to outcome-based
|
|
46
|
+
return outcomeCreditAssignment;
|
|
47
|
+
default:
|
|
48
|
+
return simpleCreditAssignment;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Trajectory Analyzer
|
|
53
|
+
* Analyzes trajectories to extract learning signals
|
|
54
|
+
*/
|
|
55
|
+
export class TrajectoryAnalyzer {
|
|
56
|
+
creditFn;
|
|
57
|
+
config;
|
|
58
|
+
constructor(strategy = 'simple', config) {
|
|
59
|
+
this.creditFn = getCreditAssignmentFn(strategy);
|
|
60
|
+
this.config = { ...DEFAULT_ANALYZER_CONFIG, ...config };
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Analyze a trajectory
|
|
64
|
+
*/
|
|
65
|
+
async analyze(trajectory) {
|
|
66
|
+
// Assign credit to steps
|
|
67
|
+
const stepAttribution = await this.creditFn(trajectory, this.config);
|
|
68
|
+
// Apply attribution to steps
|
|
69
|
+
for (let i = 0; i < trajectory.steps.length; i++) {
|
|
70
|
+
trajectory.steps[i].attributionScore = stepAttribution[i];
|
|
71
|
+
}
|
|
72
|
+
// Identify key steps
|
|
73
|
+
const keySteps = stepAttribution
|
|
74
|
+
.map((score, index) => ({ score, index }))
|
|
75
|
+
.filter(({ score }) => score >= this.config.attributionThreshold)
|
|
76
|
+
.map(({ index }) => index);
|
|
77
|
+
// Detect error patterns
|
|
78
|
+
const errorPatterns = this.detectErrorPatterns(trajectory);
|
|
79
|
+
// Assess abstractability
|
|
80
|
+
const abstractable = this.assessAbstractability(trajectory, keySteps, errorPatterns);
|
|
81
|
+
// Extract training examples
|
|
82
|
+
const trainingExamples = this.extractTrainingExamples(trajectory, keySteps);
|
|
83
|
+
return {
|
|
84
|
+
success: trajectory.outcome.success,
|
|
85
|
+
keySteps,
|
|
86
|
+
stepAttribution,
|
|
87
|
+
errorPatterns,
|
|
88
|
+
abstractable,
|
|
89
|
+
trainingExamples,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Detect error patterns in failed trajectories
|
|
94
|
+
*/
|
|
95
|
+
detectErrorPatterns(trajectory) {
|
|
96
|
+
const patterns = [];
|
|
97
|
+
if (!trajectory.outcome.success && trajectory.outcome.errorInfo) {
|
|
98
|
+
// Extract error type from error info
|
|
99
|
+
const errorInfo = trajectory.outcome.errorInfo;
|
|
100
|
+
// Common error patterns
|
|
101
|
+
const errorTypes = [
|
|
102
|
+
[/timeout/i, 'timeout', 'Operation timed out'],
|
|
103
|
+
[/not found/i, 'not_found', 'Resource not found'],
|
|
104
|
+
[/permission denied/i, 'permission', 'Permission denied'],
|
|
105
|
+
[/syntax error/i, 'syntax', 'Syntax error in code'],
|
|
106
|
+
[/type error/i, 'type', 'Type mismatch error'],
|
|
107
|
+
[/assertion|assert/i, 'assertion', 'Assertion failed'],
|
|
108
|
+
[/exception|error/i, 'general', 'General error'],
|
|
109
|
+
];
|
|
110
|
+
for (const [pattern, type, desc] of errorTypes) {
|
|
111
|
+
if (pattern.test(errorInfo)) {
|
|
112
|
+
patterns.push({
|
|
113
|
+
type,
|
|
114
|
+
signature: errorInfo.slice(0, 100),
|
|
115
|
+
description: desc,
|
|
116
|
+
});
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Check for repeated failed actions
|
|
122
|
+
const actionCounts = new Map();
|
|
123
|
+
for (const step of trajectory.steps) {
|
|
124
|
+
const count = (actionCounts.get(step.action) ?? 0) + 1;
|
|
125
|
+
actionCounts.set(step.action, count);
|
|
126
|
+
}
|
|
127
|
+
for (const [action, count] of actionCounts) {
|
|
128
|
+
if (count >= this.config.actionRepetitionThreshold) {
|
|
129
|
+
patterns.push({
|
|
130
|
+
type: 'repetition',
|
|
131
|
+
signature: action,
|
|
132
|
+
description: `Action repeated ${count} times`,
|
|
133
|
+
suggestedFix: 'Try a different approach',
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return patterns;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Assess whether a trajectory is worth abstracting patterns from
|
|
141
|
+
*/
|
|
142
|
+
assessAbstractability(trajectory, keySteps, errorPatterns) {
|
|
143
|
+
// Successful trajectories are generally abstractable
|
|
144
|
+
if (trajectory.outcome.success) {
|
|
145
|
+
// Must have enough meaningful steps
|
|
146
|
+
return keySteps.length >= 2;
|
|
147
|
+
}
|
|
148
|
+
// Failed trajectories with clear error patterns might be useful
|
|
149
|
+
// for learning what NOT to do
|
|
150
|
+
if (errorPatterns.length > 0) {
|
|
151
|
+
return (errorPatterns.some((p) => p.suggestedFix) ||
|
|
152
|
+
trajectory.outcome.partialScore >= 0.3);
|
|
153
|
+
}
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Extract training examples from trajectory
|
|
158
|
+
*/
|
|
159
|
+
extractTrainingExamples(trajectory, keySteps) {
|
|
160
|
+
const examples = [];
|
|
161
|
+
// Extract from key steps
|
|
162
|
+
for (const index of keySteps) {
|
|
163
|
+
const step = trajectory.steps[index];
|
|
164
|
+
if (step.thought && step.action) {
|
|
165
|
+
examples.push({
|
|
166
|
+
input: step.thought,
|
|
167
|
+
output: step.action,
|
|
168
|
+
stepIndex: index,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Add final step as input-output pair
|
|
173
|
+
if (trajectory.steps.length > 0 && trajectory.outcome.success) {
|
|
174
|
+
examples.push({
|
|
175
|
+
input: trajectory.task.description,
|
|
176
|
+
output: JSON.stringify(trajectory.outcome.solution),
|
|
177
|
+
stepIndex: trajectory.steps.length - 1,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
return examples;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Set credit assignment strategy
|
|
184
|
+
*/
|
|
185
|
+
setStrategy(strategy) {
|
|
186
|
+
this.creditFn = getCreditAssignmentFn(strategy);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Set attribution threshold
|
|
190
|
+
*/
|
|
191
|
+
setThreshold(threshold) {
|
|
192
|
+
this.config.attributionThreshold = threshold;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Update configuration
|
|
196
|
+
*/
|
|
197
|
+
updateConfig(config) {
|
|
198
|
+
this.config = { ...this.config, ...config };
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Get current configuration
|
|
202
|
+
*/
|
|
203
|
+
getConfig() {
|
|
204
|
+
return { ...this.config };
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Create a trajectory analyzer
|
|
209
|
+
*/
|
|
210
|
+
export function createAnalyzer(strategy = 'simple', config) {
|
|
211
|
+
return new TrajectoryAnalyzer(strategy, config);
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/learning/analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learning Effectiveness Tracker
|
|
3
|
+
*
|
|
4
|
+
* Measures whether the learning system is actually improving agent outcomes.
|
|
5
|
+
* Uses post-task reflection annotations rather than A/B replay evaluation.
|
|
6
|
+
*
|
|
7
|
+
* After each trajectory completes, the tracker annotates it with:
|
|
8
|
+
* - What knowledge was surfaced (playbooks, experiences)
|
|
9
|
+
* - Whether the surfaced knowledge was applied (inferred from trajectory)
|
|
10
|
+
* - Whether the outcome improved relative to similar unaided tasks
|
|
11
|
+
*
|
|
12
|
+
* These annotations accumulate into aggregate metrics that answer:
|
|
13
|
+
* "Is learning making agents better over time?"
|
|
14
|
+
*
|
|
15
|
+
* Inspired by Dash's eval framework but adapted for domain-agnostic
|
|
16
|
+
* trajectory learning rather than text-to-SQL.
|
|
17
|
+
*/
|
|
18
|
+
import type { Trajectory } from '../types/index.js';
|
|
19
|
+
import type { PlaybookMatch } from '../memory/playbook.js';
|
|
20
|
+
/**
|
|
21
|
+
* Annotation attached to a trajectory after completion.
|
|
22
|
+
* Records what knowledge was available and whether it helped.
|
|
23
|
+
*/
|
|
24
|
+
export interface TaskAnnotation {
|
|
25
|
+
id: string;
|
|
26
|
+
trajectoryId: string;
|
|
27
|
+
timestamp: Date;
|
|
28
|
+
/** What was surfaced before/during execution */
|
|
29
|
+
knowledgeSurfaced: {
|
|
30
|
+
playbookIds: string[];
|
|
31
|
+
playbookNames: string[];
|
|
32
|
+
experienceIds: string[];
|
|
33
|
+
/** Total number of knowledge items retrieved */
|
|
34
|
+
totalItems: number;
|
|
35
|
+
};
|
|
36
|
+
/** What was actually applied (inferred from trajectory analysis) */
|
|
37
|
+
knowledgeApplied: {
|
|
38
|
+
/** Playbook IDs whose tactics appeared in the trajectory steps */
|
|
39
|
+
playbookIdsUsed: string[];
|
|
40
|
+
/** Whether any surfaced knowledge was used */
|
|
41
|
+
anyKnowledgeUsed: boolean;
|
|
42
|
+
};
|
|
43
|
+
/** Outcome metrics for this task */
|
|
44
|
+
outcome: {
|
|
45
|
+
success: boolean;
|
|
46
|
+
stepCount: number;
|
|
47
|
+
/** Number of error-recovery cycles in the trajectory */
|
|
48
|
+
errorRecoveries: number;
|
|
49
|
+
/** Whether the task domain had prior playbooks */
|
|
50
|
+
domainHadPlaybooks: boolean;
|
|
51
|
+
};
|
|
52
|
+
/** Optional human or agent reflection after task completion */
|
|
53
|
+
reflection?: {
|
|
54
|
+
/** Was the surfaced knowledge relevant? */
|
|
55
|
+
knowledgeRelevance: 'helpful' | 'irrelevant' | 'misleading' | 'not_assessed';
|
|
56
|
+
/** Free-form notes on what worked or didn't */
|
|
57
|
+
notes?: string;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Aggregate effectiveness metrics computed from annotations
|
|
62
|
+
*/
|
|
63
|
+
export interface EffectivenessMetrics {
|
|
64
|
+
/** Total tasks tracked */
|
|
65
|
+
totalTasks: number;
|
|
66
|
+
/** Tasks where knowledge was surfaced vs not */
|
|
67
|
+
guidedTasks: number;
|
|
68
|
+
unguidedTasks: number;
|
|
69
|
+
/** Success rates */
|
|
70
|
+
guidedSuccessRate: number;
|
|
71
|
+
unguidedSuccessRate: number;
|
|
72
|
+
/** Difference: positive means guidance helps */
|
|
73
|
+
successRateDelta: number;
|
|
74
|
+
/** Average step counts */
|
|
75
|
+
guidedAvgSteps: number;
|
|
76
|
+
unguidedAvgSteps: number;
|
|
77
|
+
/** Negative means guidance reduces steps (good) */
|
|
78
|
+
stepCountDelta: number;
|
|
79
|
+
/** Knowledge application rates */
|
|
80
|
+
knowledgeApplicationRate: number;
|
|
81
|
+
/** Of applied knowledge, how often did the task succeed? */
|
|
82
|
+
appliedKnowledgeSuccessRate: number;
|
|
83
|
+
/** Error recovery */
|
|
84
|
+
guidedAvgErrorRecoveries: number;
|
|
85
|
+
unguidedAvgErrorRecoveries: number;
|
|
86
|
+
/** Per-playbook effectiveness */
|
|
87
|
+
playbookEffectiveness: PlaybookEffectivenessEntry[];
|
|
88
|
+
/** Time window these metrics cover */
|
|
89
|
+
windowStart: Date;
|
|
90
|
+
windowEnd: Date;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Effectiveness metrics for a single playbook
|
|
94
|
+
*/
|
|
95
|
+
export interface PlaybookEffectivenessEntry {
|
|
96
|
+
playbookId: string;
|
|
97
|
+
playbookName: string;
|
|
98
|
+
/** Times this playbook was surfaced */
|
|
99
|
+
surfacedCount: number;
|
|
100
|
+
/** Times this playbook was actually applied */
|
|
101
|
+
appliedCount: number;
|
|
102
|
+
/** Success rate when applied */
|
|
103
|
+
appliedSuccessRate: number;
|
|
104
|
+
/** Average step count when applied */
|
|
105
|
+
appliedAvgSteps: number;
|
|
106
|
+
/** How often agents found this knowledge relevant */
|
|
107
|
+
relevanceRate: number;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Tracks learning effectiveness through post-task annotations
|
|
111
|
+
*/
|
|
112
|
+
export declare class LearningEffectivenessTracker {
|
|
113
|
+
private store;
|
|
114
|
+
private initialized;
|
|
115
|
+
constructor(baseDir: string);
|
|
116
|
+
init(): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Annotate a completed trajectory with knowledge usage data.
|
|
119
|
+
* Call this after a task finishes and usage inference has run.
|
|
120
|
+
*/
|
|
121
|
+
annotate(trajectory: Trajectory, surfacedPlaybooks: PlaybookMatch[], surfacedExperienceIds: string[], appliedPlaybookIds: string[]): Promise<TaskAnnotation>;
|
|
122
|
+
/**
|
|
123
|
+
* Add a reflection to an existing annotation.
|
|
124
|
+
* Called after human review or agent self-reflection.
|
|
125
|
+
*/
|
|
126
|
+
addReflection(annotationId: string, reflection: TaskAnnotation['reflection']): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Compute aggregate effectiveness metrics over a time window.
|
|
129
|
+
* Defaults to all time if no window specified.
|
|
130
|
+
*/
|
|
131
|
+
computeMetrics(options?: {
|
|
132
|
+
since?: Date;
|
|
133
|
+
until?: Date;
|
|
134
|
+
domain?: string;
|
|
135
|
+
}): Promise<EffectivenessMetrics>;
|
|
136
|
+
/**
|
|
137
|
+
* Get all annotations (for export/inspection)
|
|
138
|
+
*/
|
|
139
|
+
getAll(): Promise<TaskAnnotation[]>;
|
|
140
|
+
/**
|
|
141
|
+
* Get annotation by trajectory ID
|
|
142
|
+
*/
|
|
143
|
+
getByTrajectoryId(trajectoryId: string): Promise<TaskAnnotation | undefined>;
|
|
144
|
+
/**
|
|
145
|
+
* Get annotation count
|
|
146
|
+
*/
|
|
147
|
+
count(): Promise<number>;
|
|
148
|
+
/**
|
|
149
|
+
* Close the store
|
|
150
|
+
*/
|
|
151
|
+
close(): Promise<void>;
|
|
152
|
+
private computePlaybookEffectiveness;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Create a learning effectiveness tracker
|
|
156
|
+
*/
|
|
157
|
+
export declare function createEffectivenessTracker(baseDir: string): LearningEffectivenessTracker;
|
|
158
|
+
//# sourceMappingURL=effectiveness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effectiveness.d.ts","sourceRoot":"","sources":["../../src/learning/effectiveness.ts"],"names":[],"mappings":"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"}
|