ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"experiment": "4-1",
|
||||
"campaign_id": "real_mcp_dashscope_intl_20260730T070000Z",
|
||||
"status": "blocked",
|
||||
"official_complete": false,
|
||||
"manifest": "validation/experiment_4_1/real_mcp_dashscope_intl_20260730T070000Z/manifest.json",
|
||||
"manifest_sha256": "f93ee0ad9bd1121ed9e7c9d730bbaf85847d03e89c9024487cfdf9f62b8557ab"
|
||||
}
|
||||
+3793
File diff suppressed because it is too large
Load Diff
+21
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"secret_values_recorded": false,
|
||||
"google_calendar": {
|
||||
"token_file_exists": false,
|
||||
"token_file_bytes": 0,
|
||||
"oauth_credentials_sdk_importable": true,
|
||||
"calendar_sdk_importable": true
|
||||
},
|
||||
"notion": {
|
||||
"api_key_present": false,
|
||||
"sdk_importable": true
|
||||
},
|
||||
"multimodal": {
|
||||
"openai_key_present": true,
|
||||
"openrouter_key_present": true,
|
||||
"local_whisper_importable": true,
|
||||
"pytesseract_importable": true,
|
||||
"tesseract_executable_present": true,
|
||||
"ffmpeg_executable_present": true
|
||||
}
|
||||
}
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"marker": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"paths": {
|
||||
"fixtures": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures",
|
||||
"knowledge": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge",
|
||||
"note": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge/mcp-notes.md",
|
||||
"pdf": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.pdf",
|
||||
"docx": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.docx",
|
||||
"pptx": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.pptx",
|
||||
"image": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/ocr-source.png",
|
||||
"audio": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/spoken-marker.aiff",
|
||||
"video": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/visual-marker.mp4",
|
||||
"downloads": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/downloads",
|
||||
"mutation": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/mutation_workspace",
|
||||
"outside_witness": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/outside-witness.txt"
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge/mcp-notes.md",
|
||||
"bytes": 117,
|
||||
"sha256": "945c0c3c5db50871410a7e3fed03927d5d8756daab542a933ced7a34b38e9bd1"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.pdf",
|
||||
"bytes": 1461,
|
||||
"sha256": "eff86d68b4bf349032123aaf27a9d6c2dacd5f6fdc8f18f549177f11afa581a5"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.docx",
|
||||
"bytes": 36652,
|
||||
"sha256": "3e0c68459afab0423c06878f18f26151fb9064d8bb5f1b39c1c131534cc2087b"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.pptx",
|
||||
"bytes": 28277,
|
||||
"sha256": "ff648361dc80bf014ce8991f92cf90413f0d315eaa2759ca7362304fba33fb66"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/ocr-source.png",
|
||||
"bytes": 15559,
|
||||
"sha256": "c0d7cf1025cdafa6c9da51e0ab021f9a7fc192b874770c30f693c81ade651e6f"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/spoken-marker.aiff",
|
||||
"bytes": 160516,
|
||||
"sha256": "8d6b6aca4973239afafe0e42d576b8702f5fc6c008907dc75247923adfd0150f"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/visual-marker.mp4",
|
||||
"bytes": 10089,
|
||||
"sha256": "05ed43bb4e1b34e491bcad877137721ccbdbbd5a6c4b6ee0483b20176484ef99"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/outside-witness.txt",
|
||||
"bytes": 28,
|
||||
"sha256": "59049c8e49e561bbe617bd612757e0c83d5623857aeb123338d573e01b4c9120"
|
||||
}
|
||||
],
|
||||
"generators": {
|
||||
"say": {
|
||||
"executable": "say",
|
||||
"arguments": [
|
||||
"-v",
|
||||
"Samantha",
|
||||
"-r",
|
||||
"150",
|
||||
"-o",
|
||||
"/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/spoken-marker.aiff",
|
||||
"Experiment four one. Perception tools verified."
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"elapsed_seconds": 1.151
|
||||
},
|
||||
"ffmpeg": {
|
||||
"executable": "ffmpeg",
|
||||
"arguments": [
|
||||
"-y",
|
||||
"-loglevel",
|
||||
"error",
|
||||
"-loop",
|
||||
"1",
|
||||
"-i",
|
||||
"/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/ocr-source.png",
|
||||
"-t",
|
||||
"1.5",
|
||||
"-r",
|
||||
"3",
|
||||
"-pix_fmt",
|
||||
"yuv420p",
|
||||
"/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/visual-marker.mp4"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"elapsed_seconds": 0.079
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
Binary file not shown.
+68
@@ -0,0 +1,68 @@
|
||||
%PDF-1.3
|
||||
%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com
|
||||
1 0 obj
|
||||
<<
|
||||
/F1 2 0 R
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/Contents 7 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 6 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/PageMode /UseNone /Pages 6 0 R /Type /Catalog
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/Author (anonymous) /CreationDate (D:20260730054301+08'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20260730054301+08'00') /Producer (ReportLab PDF Library - www.reportlab.com)
|
||||
/Subject (unspecified) /Title (untitled) /Trapped /False
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/Count 1 /Kids [ 3 0 R ] /Type /Pages
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 149
|
||||
>>
|
||||
stream
|
||||
Gap@E_$\%E&4>pbMB#Vum?GTH[Bm*aejY18QPL99V"E$[G:F42]HfmARcNXm%%N,@&4ctb&ARsI$Y<bWr24[kqH/=e)dPYFoZY4"L3J7!"=1[P2)/E`Vg!dGBhrBD],?:#bnb\X]CcoX(I=l=4T~>endstream
|
||||
endobj
|
||||
xref
|
||||
0 8
|
||||
0000000000 65535 f
|
||||
0000000073 00000 n
|
||||
0000000104 00000 n
|
||||
0000000211 00000 n
|
||||
0000000414 00000 n
|
||||
0000000482 00000 n
|
||||
0000000778 00000 n
|
||||
0000000837 00000 n
|
||||
trailer
|
||||
<<
|
||||
/ID
|
||||
[<b8741d3b1ffae99288560bb1e72812c6><b8741d3b1ffae99288560bb1e72812c6>]
|
||||
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
|
||||
|
||||
/Info 5 0 R
|
||||
/Root 4 0 R
|
||||
/Size 8
|
||||
>>
|
||||
startxref
|
||||
1076
|
||||
%%EOF
|
||||
BIN
Binary file not shown.
+201
@@ -0,0 +1,201 @@
|
||||
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Example Domains</title>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<link rel="stylesheet" href="/static/css/iana_website.3c174467e53c.css"/>
|
||||
<link rel="shortcut icon" type="image/ico" href="/static/img/bookmark_icon.e14a2530b3e9.ico"/>
|
||||
<script type="text/javascript" src="/static/js/jquery.a8e7cabd4d49.js"></script>
|
||||
<script type="text/javascript" src="/static/js/dtable.46ee921d4414.js" defer></script>
|
||||
<script type="text/javascript" src="/static/js/relative-time.79f0e30be3b8.js" defer></script>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<div id="header">
|
||||
<div id="logo">
|
||||
<a href="/"><img src="/static/img/iana-logo-header.426b3ac01d35.svg" alt="Homepage"/></a>
|
||||
</div>
|
||||
<div class="navigation">
|
||||
<ul>
|
||||
<li><a href="/domains">Domains</a></li>
|
||||
<li><a href="/protocols">Protocols</a></li>
|
||||
<li><a href="/numbers">Numbers</a></li>
|
||||
<li><a href="/about">About</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div id="body">
|
||||
|
||||
|
||||
<article class="hemmed sidenav">
|
||||
|
||||
<main>
|
||||
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="/help">Instructions and Guides</a></li>
|
||||
</ol>
|
||||
<h1 id="example-domains">Example Domains</h1>
|
||||
<div class="help-article-flow">
|
||||
<div class="help-article">
|
||||
|
||||
<p>As described in <a href="/go/rfc2606">RFC 2606</a> and <a href="/go/rfc6761">RFC 6761</a>, a
|
||||
number of domains such as example.com and example.org are maintained
|
||||
for documentation purposes. These domains may be used as illustrative
|
||||
examples in documents without prior coordination with us. They are not
|
||||
available for registration or transfer.</p>
|
||||
<p>We provide a web service on the example domain hosts to provide basic
|
||||
information on the purpose of the domain. These web services are
|
||||
provided as best effort, but are not designed to support production
|
||||
applications. While incidental traffic for incorrectly configured
|
||||
applications is expected, please do not design applications that require
|
||||
the example domains to have operating HTTP service.</p>
|
||||
<h2 id="further-reading">Further Reading</h2>
|
||||
<ul>
|
||||
<li><a href="/domains/reserved">IANA-managed Reserved Domains</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="last-updated">Last revised <time class="relative-time" datetime="2017-05-13">2017-05-13</time>.</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<nav id="sidenav">
|
||||
|
||||
</nav>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div id="footer">
|
||||
<table class="navigation">
|
||||
<tr>
|
||||
<td class="section"><a href="/domains">Domain Names</a></td>
|
||||
<td class="subsection">
|
||||
<ul>
|
||||
<li><a href="/domains/root">Root Zone Registry</a></li>
|
||||
<li><a href="/domains/int">.INT Registry</a></li>
|
||||
<li><a href="/domains/arpa">.ARPA Registry</a></li>
|
||||
<li><a href="/domains/idn-tables">IDN Repository</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="section"><a href="/numbers">Number Resources</a></td>
|
||||
<td class="subsection">
|
||||
<ul>
|
||||
<li><a href="/numbers/registries">Number Registries</a></li>
|
||||
<li><a href="/numbers/allocations/">RIR Allocation Data</a></li>
|
||||
<li><a href="/help/abuse">Abuse Information</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="section"><a href="/protocols">Protocols</a></td>
|
||||
<td class="subsection">
|
||||
<ul>
|
||||
<li><a href="/protocols">Protocol Registries</a></li>
|
||||
<li><a href="/time-zones">Time Zone Database</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="section"><a href="/about">About Us</a></td>
|
||||
<td class="subsection">
|
||||
<ul>
|
||||
<li><a href="/news">News</a></li>
|
||||
<li><a href="/performance">Performance</a></li>
|
||||
<li><a href="/about/organization">The Organization</a></li>
|
||||
<li><a href="/archive">Archive</a></li>
|
||||
<li><a href="/contact">Contact Us</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="custodian">
|
||||
<p>The IANA functions coordinate the Internet’s globally unique identifiers, and
|
||||
are provided by <a href="https://pti.icann.org">Public Technical Identifiers</a>, an affiliate of
|
||||
<a href="https://www.icann.org/">ICANN</a>.</p>
|
||||
</div>
|
||||
<div id="legalnotice">
|
||||
<ul>
|
||||
<li><a href="https://www.icann.org/privacy/policy">Privacy Policy</a></li>
|
||||
<li><a href="https://www.icann.org/privacy/tos">Terms of Service</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// Highlight the table-of-contents entry for the section currently at the
|
||||
// top of the viewport, following the page as it scrolls. Purely additive:
|
||||
// without JS the rail still works as a list of jump links.
|
||||
(function () {
|
||||
var toc = document.querySelector('.article-toc');
|
||||
if (!toc) return;
|
||||
|
||||
var sections = Array.prototype.map.call(
|
||||
toc.querySelectorAll('a[href^="#"]'),
|
||||
function (a) {
|
||||
var id = decodeURIComponent(a.getAttribute('href')).slice(1);
|
||||
return { link: a, target: document.getElementById(id) };
|
||||
}
|
||||
).filter(function (s) { return s.target; });
|
||||
if (!sections.length) return;
|
||||
|
||||
var current = null;
|
||||
function update() {
|
||||
var line = 120; // trigger line, px below the top of the viewport
|
||||
var active = sections[0];
|
||||
for (var i = 0; i < sections.length; i++) {
|
||||
if (sections[i].target.getBoundingClientRect().top - line <= 0) {
|
||||
active = sections[i];
|
||||
}
|
||||
}
|
||||
if (active && active.link !== current) {
|
||||
if (current) current.classList.remove('is-current');
|
||||
active.link.classList.add('is-current');
|
||||
current = active.link;
|
||||
}
|
||||
}
|
||||
|
||||
var ticking = false;
|
||||
function onScroll() {
|
||||
if (ticking) return;
|
||||
ticking = true;
|
||||
window.requestAnimationFrame(function () { update(); ticking = false; });
|
||||
}
|
||||
window.addEventListener('scroll', onScroll, { passive: true });
|
||||
window.addEventListener('resize', onScroll);
|
||||
update();
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
# Experiment 4-1
|
||||
|
||||
PERCEPTION-EXPERIMENT-4-1-VERIFIED
|
||||
The Model Context Protocol connects agents to perception tools.
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
BIN
Binary file not shown.
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
PERCEPTION-EXPERIMENT-4-1-VERIFIED
|
||||
+1
@@ -0,0 +1 @@
|
||||
/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/outside-witness.txt
|
||||
+1
@@ -0,0 +1 @@
|
||||
directory browse fixture
|
||||
+1
@@ -0,0 +1 @@
|
||||
PERCEPTION-EXPERIMENT-4-1-VERIFIED
|
||||
+1
@@ -0,0 +1 @@
|
||||
OUTSIDE-WITNESS-MUST-REMAIN
|
||||
+282
@@ -0,0 +1,282 @@
|
||||
{
|
||||
"generated_at": "2026-07-29T21:43:53.508692+00:00",
|
||||
"file_count": 46,
|
||||
"files": [
|
||||
{
|
||||
"path": "catalog_receipt.json",
|
||||
"kind": "file",
|
||||
"bytes": 249214,
|
||||
"sha256": "829aeb8aaa589beb85b195d8702c23015ea8a62296d18568d7ac8337b14a1d2f"
|
||||
},
|
||||
{
|
||||
"path": "credential_preflight.json",
|
||||
"kind": "file",
|
||||
"bytes": 528,
|
||||
"sha256": "b5e240ff7f98038b33e57f9497890affb1d46597b7a607d0d3527f01fd2a0e1b"
|
||||
},
|
||||
{
|
||||
"path": "fixture_receipt.json",
|
||||
"kind": "file",
|
||||
"bytes": 5541,
|
||||
"sha256": "b20c3ff7c1ebcc557d8040b9a8faa0d18dd60b8c2acbdae7f5afd6ee6ca04e46"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/documents/sample.docx",
|
||||
"kind": "file",
|
||||
"bytes": 36652,
|
||||
"sha256": "3e0c68459afab0423c06878f18f26151fb9064d8bb5f1b39c1c131534cc2087b"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/documents/sample.pdf",
|
||||
"kind": "file",
|
||||
"bytes": 1461,
|
||||
"sha256": "eff86d68b4bf349032123aaf27a9d6c2dacd5f6fdc8f18f549177f11afa581a5"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/documents/sample.pptx",
|
||||
"kind": "file",
|
||||
"bytes": 28277,
|
||||
"sha256": "ff648361dc80bf014ce8991f92cf90413f0d315eaa2759ca7362304fba33fb66"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/downloads/iana-example.html",
|
||||
"kind": "file",
|
||||
"bytes": 6639,
|
||||
"sha256": "4142da6d9cc75147bb23d15b735a5f6a472551177bda1eef62a0096c702d6e53"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/knowledge/mcp-notes.md",
|
||||
"kind": "file",
|
||||
"bytes": 117,
|
||||
"sha256": "945c0c3c5db50871410a7e3fed03927d5d8756daab542a933ced7a34b38e9bd1"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/media/ocr-source.png",
|
||||
"kind": "file",
|
||||
"bytes": 15559,
|
||||
"sha256": "c0d7cf1025cdafa6c9da51e0ab021f9a7fc192b874770c30f693c81ade651e6f"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/media/spoken-marker.aiff",
|
||||
"kind": "file",
|
||||
"bytes": 160516,
|
||||
"sha256": "8d6b6aca4973239afafe0e42d576b8702f5fc6c008907dc75247923adfd0150f"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/media/visual-marker.mp4",
|
||||
"kind": "file",
|
||||
"bytes": 10089,
|
||||
"sha256": "05ed43bb4e1b34e491bcad877137721ccbdbbd5a6c4b6ee0483b20176484ef99"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/mutation_workspace/.perception-trash/20260729T214327244925Z-e39664e96bda47b49e30d24b5b626fa4-moved.txt",
|
||||
"kind": "file",
|
||||
"bytes": 35,
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/mutation_workspace/escape-link",
|
||||
"kind": "symlink-target",
|
||||
"bytes": 28,
|
||||
"sha256": "59049c8e49e561bbe617bd612757e0c83d5623857aeb123338d573e01b4c9120"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/mutation_workspace/nested/entry.txt",
|
||||
"kind": "file",
|
||||
"bytes": 25,
|
||||
"sha256": "ec677abe859c618dc5ac4e89534031eddaf90c1c8a1f45f68d55ab3af39eb896"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/mutation_workspace/seed.txt",
|
||||
"kind": "file",
|
||||
"bytes": 35,
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/outside-witness.txt",
|
||||
"kind": "file",
|
||||
"bytes": 28,
|
||||
"sha256": "59049c8e49e561bbe617bd612757e0c83d5623857aeb123338d573e01b4c9120"
|
||||
},
|
||||
{
|
||||
"path": "protocol.json",
|
||||
"kind": "file",
|
||||
"bytes": 1822,
|
||||
"sha256": "1fd1e8a23c8e27de4bf1f038b6953fb588b4748770e06efb2dd90feecb4a2901"
|
||||
},
|
||||
{
|
||||
"path": "receipts/01_web_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 763,
|
||||
"sha256": "c3d82644ab244c6adbf0315758d20a0e232d567206482d2d9e7d92c60acbbfc0"
|
||||
},
|
||||
{
|
||||
"path": "receipts/02_knowledge_base_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 1291,
|
||||
"sha256": "09fc433d395630668c0555966a35e454b11e14e6d2f091b25e12748286866fd6"
|
||||
},
|
||||
{
|
||||
"path": "receipts/03_download.json",
|
||||
"kind": "file",
|
||||
"bytes": 1247,
|
||||
"sha256": "2923f78df32c909901b89ab7b00e27318fee6aec5a3da1a91633403c466c2d62"
|
||||
},
|
||||
{
|
||||
"path": "receipts/04_webpage_reader.json",
|
||||
"kind": "file",
|
||||
"bytes": 1051,
|
||||
"sha256": "5b388ef9e48f84c5e262bbbd39bc7864a27fd3d648ec76b48273a219ba76965f"
|
||||
},
|
||||
{
|
||||
"path": "receipts/05_document_reader_pdf.json",
|
||||
"kind": "file",
|
||||
"bytes": 1087,
|
||||
"sha256": "50d79059daa7dc2b94725585de1cc119e91e45e2f545436eececfc1220f54bfc"
|
||||
},
|
||||
{
|
||||
"path": "receipts/06_document_reader_docx.json",
|
||||
"kind": "file",
|
||||
"bytes": 1096,
|
||||
"sha256": "67afb85b1ae53d12e655aae117a78a299353623b76fd4aba6d7f0340fdcfccf3"
|
||||
},
|
||||
{
|
||||
"path": "receipts/07_document_reader_pptx.json",
|
||||
"kind": "file",
|
||||
"bytes": 1094,
|
||||
"sha256": "fddbddf3fced492d18897fccebad9be3ccaace9f71f3b3cb0d74c313c522cd5e"
|
||||
},
|
||||
{
|
||||
"path": "receipts/08_image_ocr.json",
|
||||
"kind": "file",
|
||||
"bytes": 1149,
|
||||
"sha256": "4b1913bde9ca7d4121861b02bd6f1a300d38aaa887508e1e8c1f6a43409ede1e"
|
||||
},
|
||||
{
|
||||
"path": "receipts/09_image_analyze.json",
|
||||
"kind": "file",
|
||||
"bytes": 1165,
|
||||
"sha256": "25ca96c43871914a3e879f8dd5863334112f1fdbce71c29cccde38fe7432ec6f"
|
||||
},
|
||||
{
|
||||
"path": "receipts/10_audio_transcribe.json",
|
||||
"kind": "file",
|
||||
"bytes": 1138,
|
||||
"sha256": "4f5fdce93df954f173bf598ad31f392cceb103e328eef1e95233ec2e76342b62"
|
||||
},
|
||||
{
|
||||
"path": "receipts/11_video_parser.json",
|
||||
"kind": "file",
|
||||
"bytes": 1093,
|
||||
"sha256": "0f4b6dd5b42df14130f71cbd063b64d4c4f9649df4e55b6e08c59de25478eb83"
|
||||
},
|
||||
{
|
||||
"path": "receipts/12_video_analyze.json",
|
||||
"kind": "file",
|
||||
"bytes": 1183,
|
||||
"sha256": "302e5225d0c8c7de220c23411cf9bd7e481990d4a54c15986ba41c9895dda6a6"
|
||||
},
|
||||
{
|
||||
"path": "receipts/13_file_reader.json",
|
||||
"kind": "file",
|
||||
"bytes": 1270,
|
||||
"sha256": "3a32d31ff5a2a7a9eb4db40f977d48e4c64da6dadd5720a5a6a41728dbfc5b4c"
|
||||
},
|
||||
{
|
||||
"path": "receipts/14_grep.json",
|
||||
"kind": "file",
|
||||
"bytes": 1436,
|
||||
"sha256": "a2a1c3185916be96847d5e70141c0e95446c2b7a91b706a6fc3434212bbacc35"
|
||||
},
|
||||
{
|
||||
"path": "receipts/15_directory_list.json",
|
||||
"kind": "file",
|
||||
"bytes": 1041,
|
||||
"sha256": "ae79510eb4695a40149688a80b09457bcf185f609f013b0a523eaf4f7a6d951b"
|
||||
},
|
||||
{
|
||||
"path": "receipts/16_filesystem_copy.json",
|
||||
"kind": "file",
|
||||
"bytes": 1424,
|
||||
"sha256": "4b128f16cd3b3f84d3bfc9ae952ba7530dad7b5d46e8005c2ac71413c209ff36"
|
||||
},
|
||||
{
|
||||
"path": "receipts/17_filesystem_move.json",
|
||||
"kind": "file",
|
||||
"bytes": 1427,
|
||||
"sha256": "cb0b01bb53737e7714f6875f4786c679533555d861564dff3901d448063e4607"
|
||||
},
|
||||
{
|
||||
"path": "receipts/18_filesystem_delete.json",
|
||||
"kind": "file",
|
||||
"bytes": 1456,
|
||||
"sha256": "56bc1a91f6cbbf390142d4dc5b0c373ef0ae4f815441fb3b40a7e75feaf561f7"
|
||||
},
|
||||
{
|
||||
"path": "receipts/19_reject_parent_traversal.json",
|
||||
"kind": "file",
|
||||
"bytes": 851,
|
||||
"sha256": "e1216a09fdbef8b4d53420a882ff9ba91257e05ea0941dfd2edd01e6a3904b4b"
|
||||
},
|
||||
{
|
||||
"path": "receipts/20_reject_absolute_path.json",
|
||||
"kind": "file",
|
||||
"bytes": 806,
|
||||
"sha256": "62cec79620f151ed87026ee33c750fa7e0550495de58938548c1d78994ce9642"
|
||||
},
|
||||
{
|
||||
"path": "receipts/21_reject_escaping_symlink.json",
|
||||
"kind": "file",
|
||||
"bytes": 811,
|
||||
"sha256": "9d2d4467851dfdbbb0f279cf9b9f2f9670d00d54d1e9e94eedbd810d698fecce"
|
||||
},
|
||||
{
|
||||
"path": "receipts/22_weather.json",
|
||||
"kind": "file",
|
||||
"bytes": 1074,
|
||||
"sha256": "20074ed5fe8efccf187226fdd13f07741128a17e9409641fab427fd422c4a9f3"
|
||||
},
|
||||
{
|
||||
"path": "receipts/23_yfinance_quote.json",
|
||||
"kind": "file",
|
||||
"bytes": 1246,
|
||||
"sha256": "97a7cd95d90afc26a8205d17eb5951a625427c147b5ff2be1a088206627618d9"
|
||||
},
|
||||
{
|
||||
"path": "receipts/24_currency_converter.json",
|
||||
"kind": "file",
|
||||
"bytes": 820,
|
||||
"sha256": "36990707b44290542f5c5f7c51b9274579ccd7d422d7adbb0ea5c0c02a4d9bcb"
|
||||
},
|
||||
{
|
||||
"path": "receipts/25_wikipedia_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 1463,
|
||||
"sha256": "b9ea01e0777a801ad439ee178cc44663bbd23ad439a0bf676f62446075297fde"
|
||||
},
|
||||
{
|
||||
"path": "receipts/26_arxiv_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 2654,
|
||||
"sha256": "e8a32e84a3e1f189d8df414b0cabc79e5d1dc7746f05d91d043a3dbe9758c681"
|
||||
},
|
||||
{
|
||||
"path": "receipts/27_calendar_events.json",
|
||||
"kind": "file",
|
||||
"bytes": 729,
|
||||
"sha256": "76d332afe6814579c0d118f08bde91f312ca523b0d8d9963d75300db4f624ce1"
|
||||
},
|
||||
{
|
||||
"path": "receipts/28_notion_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 700,
|
||||
"sha256": "bef9ac758b3bf75b86ea093da1e39e520bbf1cc9bb4581907d915ca99580e13d"
|
||||
},
|
||||
{
|
||||
"path": "summary.json",
|
||||
"kind": "file",
|
||||
"bytes": 3720,
|
||||
"sha256": "8ff1e57675448a98174177c452a0f633dfc97e9f7bed7c9912c1ef7f0b51843a"
|
||||
}
|
||||
]
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"experiment": "4-1",
|
||||
"title": "Perception tools MCP server five-category live campaign",
|
||||
"authority": "book/chapter4.md:166",
|
||||
"transport": "mcp-stdio",
|
||||
"fail_closed": true,
|
||||
"mutation_root_environment": "PERCEPTION_MUTATION_ROOT",
|
||||
"categories": {
|
||||
"search": {
|
||||
"required_cases": [
|
||||
"web_search",
|
||||
"knowledge_base_search",
|
||||
"download"
|
||||
]
|
||||
},
|
||||
"multimodal": {
|
||||
"required_cases": [
|
||||
"webpage_reader",
|
||||
"document_reader_pdf",
|
||||
"document_reader_docx",
|
||||
"document_reader_pptx",
|
||||
"image_ocr",
|
||||
"image_analyze",
|
||||
"audio_transcribe",
|
||||
"video_parser",
|
||||
"video_analyze"
|
||||
]
|
||||
},
|
||||
"filesystem": {
|
||||
"required_cases": [
|
||||
"file_reader",
|
||||
"grep",
|
||||
"directory_list",
|
||||
"filesystem_copy",
|
||||
"filesystem_move",
|
||||
"filesystem_delete"
|
||||
],
|
||||
"required_safety_cases": [
|
||||
"reject_parent_traversal",
|
||||
"reject_absolute_path",
|
||||
"reject_escaping_symlink"
|
||||
]
|
||||
},
|
||||
"public_data": {
|
||||
"required_cases": [
|
||||
"weather",
|
||||
"yfinance_quote",
|
||||
"currency_converter",
|
||||
"wikipedia_search",
|
||||
"arxiv_search"
|
||||
]
|
||||
},
|
||||
"private_data": {
|
||||
"required_cases": [
|
||||
"calendar_events",
|
||||
"notion_search"
|
||||
],
|
||||
"credential_blocking_allowed": true
|
||||
}
|
||||
},
|
||||
"acceptance": {
|
||||
"catalog_from_real_mcp": true,
|
||||
"catalog_contains_all_required_tools": true,
|
||||
"every_success_is_substantive": true,
|
||||
"filesystem_receipts_include_pre_post_hashes": true,
|
||||
"filesystem_isolation_probes_are_rejected": true,
|
||||
"private_sources_require_live_authorized_success": true,
|
||||
"missing_or_invalid_credentials_never_pass": true,
|
||||
"manifest_hashes_every_campaign_file": true
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"case": "web_search",
|
||||
"tool": "web_search",
|
||||
"arguments": {
|
||||
"query": "Model Context Protocol official specification",
|
||||
"num_results": 3
|
||||
},
|
||||
"arguments_sha256": "f5d475b1c7202a0c7c2a0eba3e63e569ee6a65f46929b097a30983506ac9ebe7",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "duckduckgo-live-search",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "search_error",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Search operation failed: 400 Client Error: Bad Request for url: https://google.serper.dev/search",
|
||||
"metadata": {
|
||||
"error_type": "search_error"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 5.112
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"case": "knowledge_base_search",
|
||||
"tool": "knowledge_base_search",
|
||||
"arguments": {
|
||||
"query": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"knowledge_base_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge",
|
||||
"top_k": 3
|
||||
},
|
||||
"arguments_sha256": "40769215352e541225efba2d1b46483f82cb5bced24de078bd042102894ba94e",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-knowledge-files",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"query": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"results": [
|
||||
{
|
||||
"file": "mcp-notes.md",
|
||||
"snippet": "# Experiment 4-1\n\nPERCEPTION-EXPERIMENT-4-1-VERIFIED\nThe Model Context Protocol connects agents to perception tools.",
|
||||
"relevance": 1
|
||||
}
|
||||
],
|
||||
"total_found": 1
|
||||
},
|
||||
"metadata": {
|
||||
"knowledge_base": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge",
|
||||
"top_k": 3
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"case": "download",
|
||||
"tool": "download",
|
||||
"arguments": {
|
||||
"url": "https://www.iana.org/help/example-domains",
|
||||
"output_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/downloads/iana-example.html",
|
||||
"timeout": 60
|
||||
},
|
||||
"arguments_sha256": "0953bd1cc2d839b57edec8ec3d9beef838eef1dc459ad93dd3984f22a0445cc1",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "tls-http-download",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": "Successfully downloaded file to /Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/downloads/iana-example.html",
|
||||
"metadata": {
|
||||
"url": "https://www.iana.org/help/example-domains",
|
||||
"output_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/downloads/iana-example.html",
|
||||
"file_size_bytes": 6639,
|
||||
"duration_seconds": 3.3426239490509033
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 3.345
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"case": "webpage_reader",
|
||||
"tool": "webpage_reader",
|
||||
"arguments": {
|
||||
"url": "https://example.com",
|
||||
"extract_text": true,
|
||||
"extract_links": true
|
||||
},
|
||||
"arguments_sha256": "8e00a9ee1bbd11c9194efa2e61a4f1d6e01c603ab2a0feed14620c5663a70d8a",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "tls-http-beautifulsoup",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"url": "https://example.com",
|
||||
"title": "Example Domain",
|
||||
"text": "Example DomainExample DomainThis domain is for use in documentation examples without needing permission. Avoid use in operations.Learn more",
|
||||
"text_length": 139,
|
||||
"links": [
|
||||
{
|
||||
"text": "Learn more",
|
||||
"href": "https://iana.org/domains/example"
|
||||
}
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"url": "https://example.com"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 1.59
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"case": "document_reader_pdf",
|
||||
"tool": "document_reader",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.pdf"
|
||||
},
|
||||
"arguments_sha256": "c7799b91fd6b7d3d04fa8cd9695afff55a5a6b19d8c044b02a2de01ed9736c8d",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "format-aware-local-parser",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "sample.pdf",
|
||||
"file_type": "pdf",
|
||||
"page_count": 1,
|
||||
"text": "Experiment 4-1 PDF PERCEPTION-EXPERIMENT-4-1-VERIFIED\n\n",
|
||||
"text_length": 55
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.pdf",
|
||||
"file_type": ".pdf"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"case": "document_reader_docx",
|
||||
"tool": "document_reader",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.docx"
|
||||
},
|
||||
"arguments_sha256": "33409163be69e104f84e735962f58801dde19322ed6f405a3d3baaffa93d6113",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "format-aware-local-parser",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "sample.docx",
|
||||
"file_type": "docx",
|
||||
"paragraph_count": 2,
|
||||
"text": "Experiment 4-1 DOCX\nPERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"text_length": 54
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.docx",
|
||||
"file_type": ".docx"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.007
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"case": "document_reader_pptx",
|
||||
"tool": "document_reader",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.pptx"
|
||||
},
|
||||
"arguments_sha256": "5401f22ad72154f7dcac2630e081504e758ed4214ffff59bd38387c8a4d86500",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "format-aware-local-parser",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "sample.pptx",
|
||||
"file_type": "pptx",
|
||||
"slide_count": 1,
|
||||
"text": "Experiment 4-1 PPTX\nPERCEPTION-EXPERIMENT-4-1-VERIFIED\n",
|
||||
"text_length": 55
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/documents/sample.pptx",
|
||||
"file_type": ".pptx"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.005
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"case": "image_ocr",
|
||||
"tool": "image_ocr",
|
||||
"arguments": {
|
||||
"image_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/ocr-source.png",
|
||||
"language": "eng"
|
||||
},
|
||||
"arguments_sha256": "e5d85eee000adbbfdee1a76e8ec9a4efd06e856053980d359ff238252a22d8a1",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-tesseract-ocr",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "ocr-source.png",
|
||||
"image_size": [
|
||||
1200,
|
||||
360
|
||||
],
|
||||
"extracted_text": "EXPERIMENT 4-1\nPERCEPTION TOOLS VERIFIED\n",
|
||||
"text_length": 41,
|
||||
"word_count": 5,
|
||||
"language": "eng",
|
||||
"method": "pytesseract"
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/ocr-source.png"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.231
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"case": "image_analyze",
|
||||
"tool": "image_analyze",
|
||||
"arguments": {
|
||||
"image_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/ocr-source.png",
|
||||
"prompt": "Read the prominent text and describe the simple image."
|
||||
},
|
||||
"arguments_sha256": "cc76995033d16f6bdbfaf935706b1a7b3a7b7ea22ee192292b87847ede388bc3",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "configured-vision-api",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "ai_analysis_error",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "AI image analysis failed: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}",
|
||||
"metadata": {
|
||||
"error_type": "ai_analysis_error"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 5.524
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"case": "audio_transcribe",
|
||||
"tool": "audio_transcribe",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/spoken-marker.aiff",
|
||||
"model_size": "tiny",
|
||||
"language": "en"
|
||||
},
|
||||
"arguments_sha256": "dd452e61ffbdefcf601f63154401301cd6dcc70275eae8c3ed5041b20d05efc2",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-whisper-or-openai",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "spoken-marker.aiff",
|
||||
"file_type": ".aiff",
|
||||
"model": "tiny",
|
||||
"language": "en",
|
||||
"transcription": " Experiment 4-1, Perception Tools Verified",
|
||||
"word_count": 5
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/spoken-marker.aiff"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 2.456
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"case": "video_parser",
|
||||
"tool": "video_parser",
|
||||
"arguments": {
|
||||
"video_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/visual-marker.mp4",
|
||||
"extract_frames": false
|
||||
},
|
||||
"arguments_sha256": "c4e5d42811975625f7f3717d57a2d9160f22b72e059ba3761f6c154d6ce63a97",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-opencv",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "visual-marker.mp4",
|
||||
"duration_seconds": 1.6666666666666667,
|
||||
"fps": 3.0,
|
||||
"frame_count": 5,
|
||||
"resolution": "1200x360",
|
||||
"width": 1200,
|
||||
"height": 360
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/visual-marker.mp4"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.027
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"case": "video_analyze",
|
||||
"tool": "video_analyze",
|
||||
"arguments": {
|
||||
"video_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/media/visual-marker.mp4",
|
||||
"num_frames": 1,
|
||||
"prompt": "Read the text shown in this frame."
|
||||
},
|
||||
"arguments_sha256": "fc90946394bfe61d2b3087106b02b1d1a3b563be4eb57e01bdf1ccc06b5f6698",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "opencv-and-configured-vision-api",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "video_analysis_error",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Video analysis failed: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}",
|
||||
"metadata": {
|
||||
"error_type": "video_analysis_error"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 4.847
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"case": "file_reader",
|
||||
"tool": "file_reader",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge/mcp-notes.md",
|
||||
"max_length": 2000
|
||||
},
|
||||
"arguments_sha256": "bce18164b9cb020d001c56c9c3462b6204da2448667b4196613fc2f0431e3581",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-filesystem",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge/mcp-notes.md",
|
||||
"content": "# Experiment 4-1\n\nPERCEPTION-EXPERIMENT-4-1-VERIFIED\nThe Model Context Protocol connects agents to perception tools.\n",
|
||||
"size_bytes": 117,
|
||||
"truncated": false,
|
||||
"encoding": "utf-8"
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge/mcp-notes.md"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.001
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"case": "grep",
|
||||
"tool": "grep",
|
||||
"arguments": {
|
||||
"pattern": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"directory": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge",
|
||||
"file_pattern": "*.md",
|
||||
"max_results": 10
|
||||
},
|
||||
"arguments_sha256": "6f5dcf0da921249caa42bd1fc9ee1b3065384b834b30bcab706d153e2a819411",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-regex-filesystem-search",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"pattern": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"results": [
|
||||
{
|
||||
"file": "mcp-notes.md",
|
||||
"line_number": 3,
|
||||
"line": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"absolute_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge/mcp-notes.md"
|
||||
}
|
||||
],
|
||||
"total_found": 1,
|
||||
"truncated": false
|
||||
},
|
||||
"metadata": {
|
||||
"directory": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/knowledge",
|
||||
"file_pattern": "*.md",
|
||||
"recursive": true
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.001
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"case": "directory_list",
|
||||
"tool": "directory_list",
|
||||
"arguments": {
|
||||
"query": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/mutation_workspace",
|
||||
"options_json": "{\"limit\": 20}"
|
||||
},
|
||||
"arguments_sha256": "45888ee033d46137d27f174d745c4f31771c943dfcdf8cbbad9bd0ad72a0b8f1",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-filesystem",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"tool": "directory_list",
|
||||
"backend": "filesystem",
|
||||
"data": [
|
||||
{
|
||||
"name": "escape-link",
|
||||
"type": "file",
|
||||
"size": 28
|
||||
},
|
||||
{
|
||||
"name": "nested",
|
||||
"type": "directory",
|
||||
"size": 96
|
||||
},
|
||||
{
|
||||
"name": "seed.txt",
|
||||
"type": "file",
|
||||
"size": 35
|
||||
}
|
||||
]
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"case": "filesystem_copy",
|
||||
"tool": "filesystem_copy",
|
||||
"arguments": {
|
||||
"source_path": "seed.txt",
|
||||
"destination_path": "copied.txt"
|
||||
},
|
||||
"arguments_sha256": "04e57c23d7913d6e4f1076b79fd13ebe887fd4387d676d6a058e4eb81f38633e",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-copy",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"operation": "copy",
|
||||
"source": "seed.txt",
|
||||
"destination": "copied.txt",
|
||||
"source_exists_after": true,
|
||||
"destination_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"replaced_path_quarantine": null
|
||||
},
|
||||
"metadata": {
|
||||
"mutation_root": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/mutation_workspace",
|
||||
"pre_operation_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"verification": "source retained and destination fingerprint matches"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"case": "filesystem_move",
|
||||
"tool": "filesystem_move",
|
||||
"arguments": {
|
||||
"source_path": "copied.txt",
|
||||
"destination_path": "moved.txt"
|
||||
},
|
||||
"arguments_sha256": "57260877dce1942e47de6c09e86bf0e2c74aac0f83d2eb41ef4f2abd7f16638e",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-rename",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"operation": "move",
|
||||
"source": "copied.txt",
|
||||
"destination": "moved.txt",
|
||||
"source_exists_after": false,
|
||||
"destination_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"replaced_path_quarantine": null
|
||||
},
|
||||
"metadata": {
|
||||
"mutation_root": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/mutation_workspace",
|
||||
"pre_operation_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"verification": "source absent and destination fingerprint matches"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"case": "filesystem_delete",
|
||||
"tool": "filesystem_delete",
|
||||
"arguments": {
|
||||
"path": "moved.txt"
|
||||
},
|
||||
"arguments_sha256": "05ca93abb4caf2ca737949e5e7829d839c513edbfad1e44f00b95b3ce49fc1bd",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-quarantine",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"operation": "delete",
|
||||
"path": "moved.txt",
|
||||
"path_exists_after": false,
|
||||
"quarantine_path": ".perception-trash/20260729T214327244925Z-e39664e96bda47b49e30d24b5b626fa4-moved.txt",
|
||||
"reversible": true,
|
||||
"quarantine_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
}
|
||||
},
|
||||
"metadata": {
|
||||
"mutation_root": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214301Z/fixtures/mutation_workspace",
|
||||
"pre_operation_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"verification": "original path absent and quarantine fingerprint matches"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"case": "reject_parent_traversal",
|
||||
"tool": "filesystem_copy",
|
||||
"arguments": {
|
||||
"source_path": "seed.txt",
|
||||
"destination_path": "../escaped.txt"
|
||||
},
|
||||
"arguments_sha256": "f30b8515b7a09f4b2e769eb600c8dc378524249cc9d6bb311673a20d1b74d6f2",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-copy",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "PermissionError",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Filesystem copy failed: Parent traversal is not allowed for filesystem mutations",
|
||||
"metadata": {
|
||||
"operation": "copy",
|
||||
"error_type": "PermissionError",
|
||||
"mutation_root_env": "PERCEPTION_MUTATION_ROOT"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.001
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"case": "reject_absolute_path",
|
||||
"tool": "filesystem_delete",
|
||||
"arguments": {
|
||||
"path": "/tmp"
|
||||
},
|
||||
"arguments_sha256": "ef28a75876b54cb665beeb4cb10d72f463c59d196f5ee4a08e62ac67e7247639",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-quarantine",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "PermissionError",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Filesystem delete failed: Absolute paths are not allowed for filesystem mutations",
|
||||
"metadata": {
|
||||
"operation": "delete",
|
||||
"error_type": "PermissionError",
|
||||
"mutation_root_env": "PERCEPTION_MUTATION_ROOT"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.001
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"case": "reject_escaping_symlink",
|
||||
"tool": "filesystem_delete",
|
||||
"arguments": {
|
||||
"path": "escape-link"
|
||||
},
|
||||
"arguments_sha256": "0cda34db2d162698b7076bdf382db85514c3506df0f19278a094153ec55e3fe2",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-quarantine",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "PermissionError",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Filesystem delete failed: Resolved path escapes the configured mutation root",
|
||||
"metadata": {
|
||||
"operation": "delete",
|
||||
"error_type": "PermissionError",
|
||||
"mutation_root_env": "PERCEPTION_MUTATION_ROOT"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.001
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"case": "weather",
|
||||
"tool": "weather",
|
||||
"arguments": {
|
||||
"location": "Singapore"
|
||||
},
|
||||
"arguments_sha256": "6b05a9aa723d910bd7a8a6b4579e099e8fcbb826fac7ee89cd347f9c274ce035",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "open-meteo",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"location": "Singapore",
|
||||
"country": "Singapore",
|
||||
"latitude": 1.28967,
|
||||
"longitude": 103.85007,
|
||||
"temperature": 26.5,
|
||||
"feels_like": 31.6,
|
||||
"humidity": 87,
|
||||
"precipitation": 0.0,
|
||||
"weather_code": 3,
|
||||
"description": "Overcast",
|
||||
"wind_speed": 7.2,
|
||||
"wind_direction": 158,
|
||||
"units": "metric",
|
||||
"timestamp": "2026-07-30T05:30",
|
||||
"provider": "Open-Meteo"
|
||||
},
|
||||
"metadata": {
|
||||
"location": "Singapore",
|
||||
"provider": "Open-Meteo",
|
||||
"api_key_required": false
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 4.528
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"case": "yfinance_quote",
|
||||
"tool": "yfinance_quote",
|
||||
"arguments": {
|
||||
"symbol": "AAPL"
|
||||
},
|
||||
"arguments_sha256": "81c8d84ddf020b1584fa351351da6f46b756261e048fe93502b5f5c3fdc1e526",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "yahoo-finance-yfinance",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"symbol": "AAPL",
|
||||
"company_name": "Apple Inc.",
|
||||
"current_price": 338.19,
|
||||
"previous_close": 340.08,
|
||||
"open": 339.69,
|
||||
"day_high": 344.5699,
|
||||
"day_low": 337.3501,
|
||||
"volume": 48852885,
|
||||
"average_volume": 55895206,
|
||||
"market_cap": 4967117094912,
|
||||
"fifty_two_week_high": 344.5699,
|
||||
"fifty_two_week_low": 201.5,
|
||||
"currency": "USD",
|
||||
"exchange": "NMS",
|
||||
"change": -1.89,
|
||||
"change_percent": -0.56
|
||||
},
|
||||
"metadata": {
|
||||
"symbol": "AAPL",
|
||||
"operation": "get_stock_quote",
|
||||
"execution_time": 4.208232879638672,
|
||||
"data_points": 16,
|
||||
"error_type": null,
|
||||
"timestamp": "2026-07-30T05:43:35.987623"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 4.212
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"case": "currency_converter",
|
||||
"tool": "currency_converter",
|
||||
"arguments": {
|
||||
"amount": 10,
|
||||
"from_currency": "USD",
|
||||
"to_currency": "SGD"
|
||||
},
|
||||
"arguments_sha256": "8e2c229a505df791071d022f2070870bc3da118c47b105afe6d7ced02fbed2d2",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "live-exchange-rate-api",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"amount": 10.0,
|
||||
"from_currency": "USD",
|
||||
"to_currency": "SGD",
|
||||
"exchange_rate": 1.29,
|
||||
"converted_amount": 12.9,
|
||||
"timestamp": "2026-07-29"
|
||||
},
|
||||
"metadata": {
|
||||
"rate": 1.29
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 1.684
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"case": "wikipedia_search",
|
||||
"tool": "wikipedia_search",
|
||||
"arguments": {
|
||||
"query": "Model Context Protocol",
|
||||
"language": "en",
|
||||
"sentences": 3
|
||||
},
|
||||
"arguments_sha256": "697f2deabfb52773a614f77f31c5e61400afcc7b42b4ba0a282fc2d5b488d9df",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "mediawiki",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"title": "Model Context Protocol",
|
||||
"url": "https://en.wikipedia.org/wiki/Model_Context_Protocol",
|
||||
"summary": "The Model Context Protocol (MCP) is an open standard and open-source framework introduced by Anthropic in November 2024 to standardize the way artificial intelligence (AI) systems like large language models (LLMs) integrate and share data with external tools, systems, and data sources. MCP provides a standardized interface for reading files, executing functions, and handling contextual prompts. Following its announcement, the protocol was adopted by major AI providers, including OpenAI and Google DeepMind.",
|
||||
"language": "en",
|
||||
"search_results": [
|
||||
"Model Context Protocol",
|
||||
"Agent harness",
|
||||
"AI agent"
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"query": "Model Context Protocol",
|
||||
"language": "en"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 11.916
|
||||
}
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"case": "arxiv_search",
|
||||
"tool": "arxiv_search",
|
||||
"arguments": {
|
||||
"query": "agentic artificial intelligence",
|
||||
"max_results": 2,
|
||||
"sort_by": "relevance"
|
||||
},
|
||||
"arguments_sha256": "7c091475ba1290dac931ea59515b34385cafe55fcafc0018f292c7d05d7152c1",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "export.arxiv.org",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"query": "agentic artificial intelligence",
|
||||
"papers": [
|
||||
{
|
||||
"title": "Creative Problem Solving in Artificially Intelligent Agents: A Survey and Framework",
|
||||
"authors": [
|
||||
"Evana Gizzi",
|
||||
"Lakshmi Nair",
|
||||
"Sonia Chernova",
|
||||
"Jivko Sinapov"
|
||||
],
|
||||
"summary": "Creative Problem Solving (CPS) is a sub-area within Artificial Intelligence (AI) that focuses on methods for solving off-nominal, or anomalous problems in autonomous systems. Despite many advancements in planning and learning, resolving novel problems or adapting existing knowledge to a new context, especially in cases where the environment may change in unpredictable ways post deployment, remains a limiting factor in the safe and useful integration of intelligent systems. The emergence of incre...",
|
||||
"published": "2022-04-21T18:31:44+00:00",
|
||||
"url": "http://arxiv.org/abs/2204.10358v1",
|
||||
"pdf_url": "https://arxiv.org/pdf/2204.10358v1",
|
||||
"categories": [
|
||||
"cs.AI"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "The Artificial Scientist: Logicist, Emergentist, and Universalist Approaches to Artificial General Intelligence",
|
||||
"authors": [
|
||||
"Michael Timothy Bennett",
|
||||
"Yoshihiro Maruyama"
|
||||
],
|
||||
"summary": "We attempt to define what is necessary to construct an Artificial Scientist, explore and evaluate several approaches to artificial general intelligence (AGI) which may facilitate this, conclude that a unified or hybrid approach is necessary and explore two theories that satisfy this requirement to some degree....",
|
||||
"published": "2021-10-05T05:58:23+00:00",
|
||||
"url": "http://arxiv.org/abs/2110.01831v1",
|
||||
"pdf_url": "https://arxiv.org/pdf/2110.01831v1",
|
||||
"categories": [
|
||||
"cs.AI"
|
||||
]
|
||||
}
|
||||
],
|
||||
"count": 2
|
||||
},
|
||||
"metadata": {
|
||||
"query": "agentic artificial intelligence",
|
||||
"max_results": 2
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 3.126
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"case": "calendar_events",
|
||||
"tool": "calendar_events",
|
||||
"arguments": {
|
||||
"calendar_id": "primary",
|
||||
"max_results": 5
|
||||
},
|
||||
"arguments_sha256": "339afbf08769281fb4ed269e3d46da2d8e0d5eff86f0d4a6d36c0159414d7c7a",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "google-calendar-api",
|
||||
"origin": "private-live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "missing_credentials",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Google Calendar not configured. Please run setup to authenticate.",
|
||||
"metadata": {
|
||||
"error_type": "missing_credentials"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.055
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"case": "notion_search",
|
||||
"tool": "notion_search",
|
||||
"arguments": {
|
||||
"query": "Experiment 4-1",
|
||||
"page_size": 5
|
||||
},
|
||||
"arguments_sha256": "e5936e03cd7f40be1aa784beffd8a2c41a47d67dc53174b65aba9e6766784807",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "notion-api",
|
||||
"origin": "private-live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "missing_credentials",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Notion API key not configured. Set NOTION_API_KEY.",
|
||||
"metadata": {
|
||||
"error_type": "missing_credentials"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.005
|
||||
}
|
||||
+147
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"experiment": "4-1",
|
||||
"campaign_id": "real_mcp_20260729T214301Z",
|
||||
"status": "failed",
|
||||
"acceptance": {
|
||||
"status": "failed",
|
||||
"gates": {
|
||||
"catalog_from_real_mcp": true,
|
||||
"catalog_contains_all_required_tools": true,
|
||||
"search_category_passed": false,
|
||||
"multimodal_category_passed": false,
|
||||
"filesystem_category_passed": true,
|
||||
"public_data_category_passed": true,
|
||||
"private_data_category_passed": false,
|
||||
"filesystem_pre_post_hashes_verified": true,
|
||||
"filesystem_isolation_probes_rejected": true,
|
||||
"all_successes_substantive_and_non_simulated": true,
|
||||
"exact_case_set_recorded": true
|
||||
},
|
||||
"categories": {
|
||||
"search": {
|
||||
"status": "failed",
|
||||
"required_cases": [
|
||||
"web_search",
|
||||
"knowledge_base_search",
|
||||
"download"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": [
|
||||
"web_search"
|
||||
]
|
||||
},
|
||||
"multimodal": {
|
||||
"status": "failed",
|
||||
"required_cases": [
|
||||
"webpage_reader",
|
||||
"document_reader_pdf",
|
||||
"document_reader_docx",
|
||||
"document_reader_pptx",
|
||||
"image_ocr",
|
||||
"image_analyze",
|
||||
"audio_transcribe",
|
||||
"video_parser",
|
||||
"video_analyze"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": [
|
||||
"image_analyze",
|
||||
"video_analyze"
|
||||
]
|
||||
},
|
||||
"filesystem": {
|
||||
"status": "passed",
|
||||
"required_cases": [
|
||||
"file_reader",
|
||||
"grep",
|
||||
"directory_list",
|
||||
"filesystem_copy",
|
||||
"filesystem_move",
|
||||
"filesystem_delete"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": []
|
||||
},
|
||||
"public_data": {
|
||||
"status": "passed",
|
||||
"required_cases": [
|
||||
"weather",
|
||||
"yfinance_quote",
|
||||
"currency_converter",
|
||||
"wikipedia_search",
|
||||
"arxiv_search"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": []
|
||||
},
|
||||
"private_data": {
|
||||
"status": "blocked",
|
||||
"required_cases": [
|
||||
"calendar_events",
|
||||
"notion_search"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": [
|
||||
"calendar_events",
|
||||
"notion_search"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"receipt_count": 28,
|
||||
"successful_cases": [
|
||||
"knowledge_base_search",
|
||||
"download",
|
||||
"webpage_reader",
|
||||
"document_reader_pdf",
|
||||
"document_reader_docx",
|
||||
"document_reader_pptx",
|
||||
"image_ocr",
|
||||
"audio_transcribe",
|
||||
"video_parser",
|
||||
"file_reader",
|
||||
"grep",
|
||||
"directory_list",
|
||||
"filesystem_copy",
|
||||
"filesystem_move",
|
||||
"filesystem_delete",
|
||||
"weather",
|
||||
"yfinance_quote",
|
||||
"currency_converter",
|
||||
"wikipedia_search",
|
||||
"arxiv_search"
|
||||
],
|
||||
"failed_or_blocked_cases": [
|
||||
"web_search",
|
||||
"image_analyze",
|
||||
"video_analyze",
|
||||
"reject_parent_traversal",
|
||||
"reject_absolute_path",
|
||||
"reject_escaping_symlink",
|
||||
"calendar_events",
|
||||
"notion_search"
|
||||
],
|
||||
"outside_witness_unchanged": true,
|
||||
"credential_preflight": {
|
||||
"secret_values_recorded": false,
|
||||
"google_calendar": {
|
||||
"token_file_exists": false,
|
||||
"token_file_bytes": 0,
|
||||
"oauth_credentials_sdk_importable": true,
|
||||
"calendar_sdk_importable": true
|
||||
},
|
||||
"notion": {
|
||||
"api_key_present": false,
|
||||
"sdk_importable": true
|
||||
},
|
||||
"multimodal": {
|
||||
"openai_key_present": true,
|
||||
"openrouter_key_present": true,
|
||||
"local_whisper_importable": true,
|
||||
"pytesseract_importable": true,
|
||||
"tesseract_executable_present": true,
|
||||
"ffmpeg_executable_present": true
|
||||
}
|
||||
},
|
||||
"generated_at": "2026-07-29T21:43:53.501396+00:00"
|
||||
}
|
||||
+3793
File diff suppressed because it is too large
Load Diff
+21
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"secret_values_recorded": false,
|
||||
"google_calendar": {
|
||||
"token_file_exists": false,
|
||||
"token_file_bytes": 0,
|
||||
"oauth_credentials_sdk_importable": true,
|
||||
"calendar_sdk_importable": true
|
||||
},
|
||||
"notion": {
|
||||
"api_key_present": false,
|
||||
"sdk_importable": true
|
||||
},
|
||||
"multimodal": {
|
||||
"openai_key_present": true,
|
||||
"openrouter_key_present": true,
|
||||
"local_whisper_importable": true,
|
||||
"pytesseract_importable": true,
|
||||
"tesseract_executable_present": true,
|
||||
"ffmpeg_executable_present": true
|
||||
}
|
||||
}
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"marker": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"paths": {
|
||||
"fixtures": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures",
|
||||
"knowledge": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge",
|
||||
"note": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge/mcp-notes.md",
|
||||
"pdf": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.pdf",
|
||||
"docx": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.docx",
|
||||
"pptx": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.pptx",
|
||||
"image": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/ocr-source.png",
|
||||
"audio": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/spoken-marker.aiff",
|
||||
"video": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/visual-marker.mp4",
|
||||
"downloads": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/downloads",
|
||||
"mutation": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/mutation_workspace",
|
||||
"outside_witness": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/outside-witness.txt"
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge/mcp-notes.md",
|
||||
"bytes": 117,
|
||||
"sha256": "945c0c3c5db50871410a7e3fed03927d5d8756daab542a933ced7a34b38e9bd1"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.pdf",
|
||||
"bytes": 1461,
|
||||
"sha256": "8718ef9150cdf2adcf45aaaa538718faa3f9cdd56f336d52d458983dc1134a35"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.docx",
|
||||
"bytes": 36652,
|
||||
"sha256": "aa1f757d19e4a2bcbea567caf19f6da22bf4e8596e5457084667a749333dd428"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.pptx",
|
||||
"bytes": 28277,
|
||||
"sha256": "a5334106616eb614eff6908f89fb9446b04c937b6c0356b6ea734b6f2515c863"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/ocr-source.png",
|
||||
"bytes": 15559,
|
||||
"sha256": "c0d7cf1025cdafa6c9da51e0ab021f9a7fc192b874770c30f693c81ade651e6f"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/spoken-marker.aiff",
|
||||
"bytes": 160516,
|
||||
"sha256": "8d6b6aca4973239afafe0e42d576b8702f5fc6c008907dc75247923adfd0150f"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/visual-marker.mp4",
|
||||
"bytes": 10089,
|
||||
"sha256": "05ed43bb4e1b34e491bcad877137721ccbdbbd5a6c4b6ee0483b20176484ef99"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/outside-witness.txt",
|
||||
"bytes": 28,
|
||||
"sha256": "59049c8e49e561bbe617bd612757e0c83d5623857aeb123338d573e01b4c9120"
|
||||
}
|
||||
],
|
||||
"generators": {
|
||||
"say": {
|
||||
"executable": "say",
|
||||
"arguments": [
|
||||
"-v",
|
||||
"Samantha",
|
||||
"-r",
|
||||
"150",
|
||||
"-o",
|
||||
"/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/spoken-marker.aiff",
|
||||
"Experiment four one. Perception tools verified."
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"elapsed_seconds": 1.052
|
||||
},
|
||||
"ffmpeg": {
|
||||
"executable": "ffmpeg",
|
||||
"arguments": [
|
||||
"-y",
|
||||
"-loglevel",
|
||||
"error",
|
||||
"-loop",
|
||||
"1",
|
||||
"-i",
|
||||
"/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/ocr-source.png",
|
||||
"-t",
|
||||
"1.5",
|
||||
"-r",
|
||||
"3",
|
||||
"-pix_fmt",
|
||||
"yuv420p",
|
||||
"/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/visual-marker.mp4"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"elapsed_seconds": 0.068
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
Binary file not shown.
+68
@@ -0,0 +1,68 @@
|
||||
%PDF-1.3
|
||||
%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com
|
||||
1 0 obj
|
||||
<<
|
||||
/F1 2 0 R
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/Contents 7 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 6 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/PageMode /UseNone /Pages 6 0 R /Type /Catalog
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/Author (anonymous) /CreationDate (D:20260730054721+08'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20260730054721+08'00') /Producer (ReportLab PDF Library - www.reportlab.com)
|
||||
/Subject (unspecified) /Title (untitled) /Trapped /False
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/Count 1 /Kids [ 3 0 R ] /Type /Pages
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 149
|
||||
>>
|
||||
stream
|
||||
Gap@E_$\%E&4>pbMB#Vum?GTH[Bm*aejY18QPL99V"E$[G:F42]HfmARcNXm%%N,@&4ctb&ARsI$Y<bWr24[kqH/=e)dPYFoZY4"L3J7!"=1[P2)/E`Vg!dGBhrBD],?:#bnb\X]CcoX(I=l=4T~>endstream
|
||||
endobj
|
||||
xref
|
||||
0 8
|
||||
0000000000 65535 f
|
||||
0000000073 00000 n
|
||||
0000000104 00000 n
|
||||
0000000211 00000 n
|
||||
0000000414 00000 n
|
||||
0000000482 00000 n
|
||||
0000000778 00000 n
|
||||
0000000837 00000 n
|
||||
trailer
|
||||
<<
|
||||
/ID
|
||||
[<628fc0753771a55fbd0da2580de6142e><628fc0753771a55fbd0da2580de6142e>]
|
||||
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
|
||||
|
||||
/Info 5 0 R
|
||||
/Root 4 0 R
|
||||
/Size 8
|
||||
>>
|
||||
startxref
|
||||
1076
|
||||
%%EOF
|
||||
BIN
Binary file not shown.
+201
@@ -0,0 +1,201 @@
|
||||
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Example Domains</title>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<link rel="stylesheet" href="/static/css/iana_website.3c174467e53c.css"/>
|
||||
<link rel="shortcut icon" type="image/ico" href="/static/img/bookmark_icon.e14a2530b3e9.ico"/>
|
||||
<script type="text/javascript" src="/static/js/jquery.a8e7cabd4d49.js"></script>
|
||||
<script type="text/javascript" src="/static/js/dtable.46ee921d4414.js" defer></script>
|
||||
<script type="text/javascript" src="/static/js/relative-time.79f0e30be3b8.js" defer></script>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<div id="header">
|
||||
<div id="logo">
|
||||
<a href="/"><img src="/static/img/iana-logo-header.426b3ac01d35.svg" alt="Homepage"/></a>
|
||||
</div>
|
||||
<div class="navigation">
|
||||
<ul>
|
||||
<li><a href="/domains">Domains</a></li>
|
||||
<li><a href="/protocols">Protocols</a></li>
|
||||
<li><a href="/numbers">Numbers</a></li>
|
||||
<li><a href="/about">About</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div id="body">
|
||||
|
||||
|
||||
<article class="hemmed sidenav">
|
||||
|
||||
<main>
|
||||
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="/help">Instructions and Guides</a></li>
|
||||
</ol>
|
||||
<h1 id="example-domains">Example Domains</h1>
|
||||
<div class="help-article-flow">
|
||||
<div class="help-article">
|
||||
|
||||
<p>As described in <a href="/go/rfc2606">RFC 2606</a> and <a href="/go/rfc6761">RFC 6761</a>, a
|
||||
number of domains such as example.com and example.org are maintained
|
||||
for documentation purposes. These domains may be used as illustrative
|
||||
examples in documents without prior coordination with us. They are not
|
||||
available for registration or transfer.</p>
|
||||
<p>We provide a web service on the example domain hosts to provide basic
|
||||
information on the purpose of the domain. These web services are
|
||||
provided as best effort, but are not designed to support production
|
||||
applications. While incidental traffic for incorrectly configured
|
||||
applications is expected, please do not design applications that require
|
||||
the example domains to have operating HTTP service.</p>
|
||||
<h2 id="further-reading">Further Reading</h2>
|
||||
<ul>
|
||||
<li><a href="/domains/reserved">IANA-managed Reserved Domains</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="last-updated">Last revised <time class="relative-time" datetime="2017-05-13">2017-05-13</time>.</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<nav id="sidenav">
|
||||
|
||||
</nav>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div id="footer">
|
||||
<table class="navigation">
|
||||
<tr>
|
||||
<td class="section"><a href="/domains">Domain Names</a></td>
|
||||
<td class="subsection">
|
||||
<ul>
|
||||
<li><a href="/domains/root">Root Zone Registry</a></li>
|
||||
<li><a href="/domains/int">.INT Registry</a></li>
|
||||
<li><a href="/domains/arpa">.ARPA Registry</a></li>
|
||||
<li><a href="/domains/idn-tables">IDN Repository</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="section"><a href="/numbers">Number Resources</a></td>
|
||||
<td class="subsection">
|
||||
<ul>
|
||||
<li><a href="/numbers/registries">Number Registries</a></li>
|
||||
<li><a href="/numbers/allocations/">RIR Allocation Data</a></li>
|
||||
<li><a href="/help/abuse">Abuse Information</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="section"><a href="/protocols">Protocols</a></td>
|
||||
<td class="subsection">
|
||||
<ul>
|
||||
<li><a href="/protocols">Protocol Registries</a></li>
|
||||
<li><a href="/time-zones">Time Zone Database</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="section"><a href="/about">About Us</a></td>
|
||||
<td class="subsection">
|
||||
<ul>
|
||||
<li><a href="/news">News</a></li>
|
||||
<li><a href="/performance">Performance</a></li>
|
||||
<li><a href="/about/organization">The Organization</a></li>
|
||||
<li><a href="/archive">Archive</a></li>
|
||||
<li><a href="/contact">Contact Us</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="custodian">
|
||||
<p>The IANA functions coordinate the Internet’s globally unique identifiers, and
|
||||
are provided by <a href="https://pti.icann.org">Public Technical Identifiers</a>, an affiliate of
|
||||
<a href="https://www.icann.org/">ICANN</a>.</p>
|
||||
</div>
|
||||
<div id="legalnotice">
|
||||
<ul>
|
||||
<li><a href="https://www.icann.org/privacy/policy">Privacy Policy</a></li>
|
||||
<li><a href="https://www.icann.org/privacy/tos">Terms of Service</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// Highlight the table-of-contents entry for the section currently at the
|
||||
// top of the viewport, following the page as it scrolls. Purely additive:
|
||||
// without JS the rail still works as a list of jump links.
|
||||
(function () {
|
||||
var toc = document.querySelector('.article-toc');
|
||||
if (!toc) return;
|
||||
|
||||
var sections = Array.prototype.map.call(
|
||||
toc.querySelectorAll('a[href^="#"]'),
|
||||
function (a) {
|
||||
var id = decodeURIComponent(a.getAttribute('href')).slice(1);
|
||||
return { link: a, target: document.getElementById(id) };
|
||||
}
|
||||
).filter(function (s) { return s.target; });
|
||||
if (!sections.length) return;
|
||||
|
||||
var current = null;
|
||||
function update() {
|
||||
var line = 120; // trigger line, px below the top of the viewport
|
||||
var active = sections[0];
|
||||
for (var i = 0; i < sections.length; i++) {
|
||||
if (sections[i].target.getBoundingClientRect().top - line <= 0) {
|
||||
active = sections[i];
|
||||
}
|
||||
}
|
||||
if (active && active.link !== current) {
|
||||
if (current) current.classList.remove('is-current');
|
||||
active.link.classList.add('is-current');
|
||||
current = active.link;
|
||||
}
|
||||
}
|
||||
|
||||
var ticking = false;
|
||||
function onScroll() {
|
||||
if (ticking) return;
|
||||
ticking = true;
|
||||
window.requestAnimationFrame(function () { update(); ticking = false; });
|
||||
}
|
||||
window.addEventListener('scroll', onScroll, { passive: true });
|
||||
window.addEventListener('resize', onScroll);
|
||||
update();
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
# Experiment 4-1
|
||||
|
||||
PERCEPTION-EXPERIMENT-4-1-VERIFIED
|
||||
The Model Context Protocol connects agents to perception tools.
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
BIN
Binary file not shown.
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
PERCEPTION-EXPERIMENT-4-1-VERIFIED
|
||||
+1
@@ -0,0 +1 @@
|
||||
/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/outside-witness.txt
|
||||
+1
@@ -0,0 +1 @@
|
||||
directory browse fixture
|
||||
+1
@@ -0,0 +1 @@
|
||||
PERCEPTION-EXPERIMENT-4-1-VERIFIED
|
||||
+1
@@ -0,0 +1 @@
|
||||
OUTSIDE-WITNESS-MUST-REMAIN
|
||||
+282
@@ -0,0 +1,282 @@
|
||||
{
|
||||
"generated_at": "2026-07-29T21:48:10.855143+00:00",
|
||||
"file_count": 46,
|
||||
"files": [
|
||||
{
|
||||
"path": "catalog_receipt.json",
|
||||
"kind": "file",
|
||||
"bytes": 249214,
|
||||
"sha256": "829aeb8aaa589beb85b195d8702c23015ea8a62296d18568d7ac8337b14a1d2f"
|
||||
},
|
||||
{
|
||||
"path": "credential_preflight.json",
|
||||
"kind": "file",
|
||||
"bytes": 528,
|
||||
"sha256": "b5e240ff7f98038b33e57f9497890affb1d46597b7a607d0d3527f01fd2a0e1b"
|
||||
},
|
||||
{
|
||||
"path": "fixture_receipt.json",
|
||||
"kind": "file",
|
||||
"bytes": 5541,
|
||||
"sha256": "2204a1d6f6f7b6d36cfe805704dbb674161147c6255295886f2adfc9fc9f69ec"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/documents/sample.docx",
|
||||
"kind": "file",
|
||||
"bytes": 36652,
|
||||
"sha256": "aa1f757d19e4a2bcbea567caf19f6da22bf4e8596e5457084667a749333dd428"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/documents/sample.pdf",
|
||||
"kind": "file",
|
||||
"bytes": 1461,
|
||||
"sha256": "8718ef9150cdf2adcf45aaaa538718faa3f9cdd56f336d52d458983dc1134a35"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/documents/sample.pptx",
|
||||
"kind": "file",
|
||||
"bytes": 28277,
|
||||
"sha256": "a5334106616eb614eff6908f89fb9446b04c937b6c0356b6ea734b6f2515c863"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/downloads/iana-example.html",
|
||||
"kind": "file",
|
||||
"bytes": 6639,
|
||||
"sha256": "4142da6d9cc75147bb23d15b735a5f6a472551177bda1eef62a0096c702d6e53"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/knowledge/mcp-notes.md",
|
||||
"kind": "file",
|
||||
"bytes": 117,
|
||||
"sha256": "945c0c3c5db50871410a7e3fed03927d5d8756daab542a933ced7a34b38e9bd1"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/media/ocr-source.png",
|
||||
"kind": "file",
|
||||
"bytes": 15559,
|
||||
"sha256": "c0d7cf1025cdafa6c9da51e0ab021f9a7fc192b874770c30f693c81ade651e6f"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/media/spoken-marker.aiff",
|
||||
"kind": "file",
|
||||
"bytes": 160516,
|
||||
"sha256": "8d6b6aca4973239afafe0e42d576b8702f5fc6c008907dc75247923adfd0150f"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/media/visual-marker.mp4",
|
||||
"kind": "file",
|
||||
"bytes": 10089,
|
||||
"sha256": "05ed43bb4e1b34e491bcad877137721ccbdbbd5a6c4b6ee0483b20176484ef99"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/mutation_workspace/.perception-trash/20260729T214745523769Z-b72462a9b8e34102ae970d2336ccd557-moved.txt",
|
||||
"kind": "file",
|
||||
"bytes": 35,
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/mutation_workspace/escape-link",
|
||||
"kind": "symlink-target",
|
||||
"bytes": 28,
|
||||
"sha256": "59049c8e49e561bbe617bd612757e0c83d5623857aeb123338d573e01b4c9120"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/mutation_workspace/nested/entry.txt",
|
||||
"kind": "file",
|
||||
"bytes": 25,
|
||||
"sha256": "ec677abe859c618dc5ac4e89534031eddaf90c1c8a1f45f68d55ab3af39eb896"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/mutation_workspace/seed.txt",
|
||||
"kind": "file",
|
||||
"bytes": 35,
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc"
|
||||
},
|
||||
{
|
||||
"path": "fixtures/outside-witness.txt",
|
||||
"kind": "file",
|
||||
"bytes": 28,
|
||||
"sha256": "59049c8e49e561bbe617bd612757e0c83d5623857aeb123338d573e01b4c9120"
|
||||
},
|
||||
{
|
||||
"path": "protocol.json",
|
||||
"kind": "file",
|
||||
"bytes": 1865,
|
||||
"sha256": "10cdb8c17da539536632e698495ac929d80d0b2f9e07cf79fe3d9b4ef7c1ffd5"
|
||||
},
|
||||
{
|
||||
"path": "receipts/01_web_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 2671,
|
||||
"sha256": "0fec649f11a392a01166e21cbd50e71f9ed9feb5bdec98110cdadac854f4883f"
|
||||
},
|
||||
{
|
||||
"path": "receipts/02_knowledge_base_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 1291,
|
||||
"sha256": "a4a5326318d1de08bac433acbf1e83e1df0a5d1af12a466d78f401bceb51f9e1"
|
||||
},
|
||||
{
|
||||
"path": "receipts/03_download.json",
|
||||
"kind": "file",
|
||||
"bytes": 1247,
|
||||
"sha256": "524c43f69f49beb18ed4a4443389f6a33b10150ef60f3057994ede6f9c8ed515"
|
||||
},
|
||||
{
|
||||
"path": "receipts/04_webpage_reader.json",
|
||||
"kind": "file",
|
||||
"bytes": 1052,
|
||||
"sha256": "06d95e3c781bba29c2ceda8d2f22c002236c728115ee1e4b93c4d236ab5e1773"
|
||||
},
|
||||
{
|
||||
"path": "receipts/05_document_reader_pdf.json",
|
||||
"kind": "file",
|
||||
"bytes": 1087,
|
||||
"sha256": "d23fb0234af88632381102d6fa686859657ed53b5f1e40fcba1308999a34fcf2"
|
||||
},
|
||||
{
|
||||
"path": "receipts/06_document_reader_docx.json",
|
||||
"kind": "file",
|
||||
"bytes": 1095,
|
||||
"sha256": "574b20470449e8756960ad4c0b4c49c1fc9786565fcc8b0243bd836fbfc5c257"
|
||||
},
|
||||
{
|
||||
"path": "receipts/07_document_reader_pptx.json",
|
||||
"kind": "file",
|
||||
"bytes": 1094,
|
||||
"sha256": "5464874d0d4d33758fff08de6c7cf401fccf75a7e31cbc660bdf02c4df6fb356"
|
||||
},
|
||||
{
|
||||
"path": "receipts/08_image_ocr.json",
|
||||
"kind": "file",
|
||||
"bytes": 1149,
|
||||
"sha256": "da056b6403d51533d85b7d1d4731f4ce09b62c9656889b2d9a2b1fbda2d75ad2"
|
||||
},
|
||||
{
|
||||
"path": "receipts/09_image_analyze.json",
|
||||
"kind": "file",
|
||||
"bytes": 1165,
|
||||
"sha256": "11ca3e33b449794519d6452559a1fd3c09e886a3d6e80ecf93a0ce0b5011478e"
|
||||
},
|
||||
{
|
||||
"path": "receipts/10_audio_transcribe.json",
|
||||
"kind": "file",
|
||||
"bytes": 1138,
|
||||
"sha256": "34a507bb66acb645924a4e208dd7cea924bd0eeca282e52b16cf3a3b408d65a9"
|
||||
},
|
||||
{
|
||||
"path": "receipts/11_video_parser.json",
|
||||
"kind": "file",
|
||||
"bytes": 1093,
|
||||
"sha256": "36b0ae2a82c26f72ccdbf94833c947f78caeeb9249c08834a5b961c85246089e"
|
||||
},
|
||||
{
|
||||
"path": "receipts/12_video_analyze.json",
|
||||
"kind": "file",
|
||||
"bytes": 1183,
|
||||
"sha256": "efb04c57b859482753eaf13249d23c88a9510b0e47fa2f5ace2679ab8c4a5207"
|
||||
},
|
||||
{
|
||||
"path": "receipts/13_file_reader.json",
|
||||
"kind": "file",
|
||||
"bytes": 1270,
|
||||
"sha256": "a84f5ff3ae48c882f530a964ff7276e1a8f7e593d02894b56427f1fced29ce92"
|
||||
},
|
||||
{
|
||||
"path": "receipts/14_grep.json",
|
||||
"kind": "file",
|
||||
"bytes": 1436,
|
||||
"sha256": "8b259c3ecc88eaa853bf7e62a33382d5a52575b7370eeb3bef5165ce1351ce73"
|
||||
},
|
||||
{
|
||||
"path": "receipts/15_directory_list.json",
|
||||
"kind": "file",
|
||||
"bytes": 1041,
|
||||
"sha256": "16252d86bb69f9b0ac3d9797a30583782aedeacf227f191b12bcf6ddfa3ca3af"
|
||||
},
|
||||
{
|
||||
"path": "receipts/16_filesystem_copy.json",
|
||||
"kind": "file",
|
||||
"bytes": 1424,
|
||||
"sha256": "52df42457c45c8702ae3168668edd9328550755d5cd6c7130fa6a21d883c8b88"
|
||||
},
|
||||
{
|
||||
"path": "receipts/17_filesystem_move.json",
|
||||
"kind": "file",
|
||||
"bytes": 1427,
|
||||
"sha256": "d79207525f1abf770e9ac3913c231c9c0a66d0e640db9735eb8abc575f1e2749"
|
||||
},
|
||||
{
|
||||
"path": "receipts/18_filesystem_delete.json",
|
||||
"kind": "file",
|
||||
"bytes": 1456,
|
||||
"sha256": "017314d216d69436c58565d7c7466d2f1174e4f42a96169c3b52ece5a7dee64d"
|
||||
},
|
||||
{
|
||||
"path": "receipts/19_reject_parent_traversal.json",
|
||||
"kind": "file",
|
||||
"bytes": 851,
|
||||
"sha256": "307ee3c6dd4dbb79f74c5b8582db855a9c90f371189a3cb5bf3c91204e3568a4"
|
||||
},
|
||||
{
|
||||
"path": "receipts/20_reject_absolute_path.json",
|
||||
"kind": "file",
|
||||
"bytes": 806,
|
||||
"sha256": "f7112c4754f83c6a510461929184fe2280ca1569ca29b0052756c7cdbed97dc8"
|
||||
},
|
||||
{
|
||||
"path": "receipts/21_reject_escaping_symlink.json",
|
||||
"kind": "file",
|
||||
"bytes": 811,
|
||||
"sha256": "b059e69929e317177edf2278d95ee3086c777c160c58b7c940b8eb6dce3407ef"
|
||||
},
|
||||
{
|
||||
"path": "receipts/22_weather.json",
|
||||
"kind": "file",
|
||||
"bytes": 1074,
|
||||
"sha256": "ac62cc2506922dd2f0f42c8d2fb9d2e5179d4e1b9634edde799e93d00c45486c"
|
||||
},
|
||||
{
|
||||
"path": "receipts/23_yfinance_quote.json",
|
||||
"kind": "file",
|
||||
"bytes": 1246,
|
||||
"sha256": "9184769717207d40fa7088546e4d8098894c7011eed6c3ab76c9703896e087f2"
|
||||
},
|
||||
{
|
||||
"path": "receipts/24_currency_converter.json",
|
||||
"kind": "file",
|
||||
"bytes": 819,
|
||||
"sha256": "ef2b8460f49d6d638069a5294298b8b739d456071c8c2ea0748f58e4171e5bca"
|
||||
},
|
||||
{
|
||||
"path": "receipts/25_wikipedia_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 1464,
|
||||
"sha256": "bfabb0c16d414cd03270d8ddde3bd4614f360ff1e146e5d060db617aad4d1aad"
|
||||
},
|
||||
{
|
||||
"path": "receipts/26_arxiv_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 2654,
|
||||
"sha256": "4aaf5cb13c715217ce64b0bc72f7d8f69166c34c218a0df73b4a8e85f19c93ca"
|
||||
},
|
||||
{
|
||||
"path": "receipts/27_calendar_events.json",
|
||||
"kind": "file",
|
||||
"bytes": 728,
|
||||
"sha256": "b4814069ff6c959c4e7d8b68a81eb0e6414ee9a622036a9ef52e26412a76e17d"
|
||||
},
|
||||
{
|
||||
"path": "receipts/28_notion_search.json",
|
||||
"kind": "file",
|
||||
"bytes": 700,
|
||||
"sha256": "bef9ac758b3bf75b86ea093da1e39e520bbf1cc9bb4581907d915ca99580e13d"
|
||||
},
|
||||
{
|
||||
"path": "summary.json",
|
||||
"kind": "file",
|
||||
"bytes": 3690,
|
||||
"sha256": "eb689c349441135e610b67c2a5c5754bb2713ff4f3442528e4cfe67ea96f806f"
|
||||
}
|
||||
]
|
||||
}
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"experiment": "4-1",
|
||||
"title": "Perception tools MCP server five-category live campaign",
|
||||
"authority": "book/chapter4.md:166",
|
||||
"transport": "mcp-stdio",
|
||||
"fail_closed": true,
|
||||
"mutation_root_environment": "PERCEPTION_MUTATION_ROOT",
|
||||
"categories": {
|
||||
"search": {
|
||||
"required_cases": [
|
||||
"web_search",
|
||||
"knowledge_base_search",
|
||||
"download"
|
||||
]
|
||||
},
|
||||
"multimodal": {
|
||||
"required_cases": [
|
||||
"webpage_reader",
|
||||
"document_reader_pdf",
|
||||
"document_reader_docx",
|
||||
"document_reader_pptx",
|
||||
"image_ocr",
|
||||
"image_analyze",
|
||||
"audio_transcribe",
|
||||
"video_parser",
|
||||
"video_analyze"
|
||||
],
|
||||
"credential_blocking_allowed": true
|
||||
},
|
||||
"filesystem": {
|
||||
"required_cases": [
|
||||
"file_reader",
|
||||
"grep",
|
||||
"directory_list",
|
||||
"filesystem_copy",
|
||||
"filesystem_move",
|
||||
"filesystem_delete"
|
||||
],
|
||||
"required_safety_cases": [
|
||||
"reject_parent_traversal",
|
||||
"reject_absolute_path",
|
||||
"reject_escaping_symlink"
|
||||
]
|
||||
},
|
||||
"public_data": {
|
||||
"required_cases": [
|
||||
"weather",
|
||||
"yfinance_quote",
|
||||
"currency_converter",
|
||||
"wikipedia_search",
|
||||
"arxiv_search"
|
||||
]
|
||||
},
|
||||
"private_data": {
|
||||
"required_cases": [
|
||||
"calendar_events",
|
||||
"notion_search"
|
||||
],
|
||||
"credential_blocking_allowed": true
|
||||
}
|
||||
},
|
||||
"acceptance": {
|
||||
"catalog_from_real_mcp": true,
|
||||
"catalog_contains_all_required_tools": true,
|
||||
"every_success_is_substantive": true,
|
||||
"filesystem_receipts_include_pre_post_hashes": true,
|
||||
"filesystem_isolation_probes_are_rejected": true,
|
||||
"private_sources_require_live_authorized_success": true,
|
||||
"missing_or_invalid_credentials_never_pass": true,
|
||||
"manifest_hashes_every_campaign_file": true
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"case": "web_search",
|
||||
"tool": "web_search",
|
||||
"arguments": {
|
||||
"query": "Model Context Protocol official specification",
|
||||
"num_results": 3
|
||||
},
|
||||
"arguments_sha256": "f5d475b1c7202a0c7c2a0eba3e63e569ee6a65f46929b097a30983506ac9ebe7",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "duckduckgo-live-search",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"query": "Model Context Protocol official specification",
|
||||
"results": [
|
||||
{
|
||||
"id": "ddg-0",
|
||||
"title": "Specification - Model Context Protocol",
|
||||
"url": "https://modelcontextprotocol.io/specification/2025-03-26",
|
||||
"snippet": "ModelContextProtocol(MCP) is an openprotocolthat enables seamless integration between LLM applications and external data sources and tools. Whether you're building an AI-powered IDE, enhancing a chat interface, or creating custom AI workflows, MCP provides a standardized way to connect LLMs with thecontextthey need.",
|
||||
"source": "duckduckgo"
|
||||
},
|
||||
{
|
||||
"id": "ddg-1",
|
||||
"title": "Model Context Protocol (MCP)",
|
||||
"url": "https://github.com/modelcontextprotocol/modelcontextprotocol",
|
||||
"snippet": "ModelContextProtocol(MCP) Just heard of MCP and not sure where to start? Check out our documentation website. This repo contains the: MCPspecificationMCPprotocolschemaOfficialMCP documentation The schema is defined in TypeScript first, but made available as JSON Schema as well, for wider compatibility.",
|
||||
"source": "duckduckgo"
|
||||
},
|
||||
{
|
||||
"id": "ddg-2",
|
||||
"title": "Specification - Model Context Protocol (MCP)",
|
||||
"url": "https://modelcontextprotocol.info/specification/",
|
||||
"snippet": "ModelContextProtocolSpecificationTheModelContextProtocol(MCP) is an openprotocolthat enables seamless integration between LLM applications and external data sources and tools. This section contains the detailed technicalspecificationsfor implementing theprotocol. Available Versions MCP is under active development. The followingspecificationsare available:Specification(Latest ...",
|
||||
"source": "duckduckgo"
|
||||
}
|
||||
],
|
||||
"count": 3
|
||||
},
|
||||
"metadata": {
|
||||
"query": "Model Context Protocol official specification",
|
||||
"search_engine": "duckduckgo",
|
||||
"total_results": 3,
|
||||
"search_time": 2.811976194381714,
|
||||
"language": "en",
|
||||
"country": "wt-wt"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 2.815
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"case": "knowledge_base_search",
|
||||
"tool": "knowledge_base_search",
|
||||
"arguments": {
|
||||
"query": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"knowledge_base_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge",
|
||||
"top_k": 3
|
||||
},
|
||||
"arguments_sha256": "a037113782d17de95095588956c92a70293e74187fbe7479737e52e8d95c71ce",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-knowledge-files",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"query": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"results": [
|
||||
{
|
||||
"file": "mcp-notes.md",
|
||||
"snippet": "# Experiment 4-1\n\nPERCEPTION-EXPERIMENT-4-1-VERIFIED\nThe Model Context Protocol connects agents to perception tools.",
|
||||
"relevance": 1
|
||||
}
|
||||
],
|
||||
"total_found": 1
|
||||
},
|
||||
"metadata": {
|
||||
"knowledge_base": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge",
|
||||
"top_k": 3
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"case": "download",
|
||||
"tool": "download",
|
||||
"arguments": {
|
||||
"url": "https://www.iana.org/help/example-domains",
|
||||
"output_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/downloads/iana-example.html",
|
||||
"timeout": 60
|
||||
},
|
||||
"arguments_sha256": "fdfab80039415cec4d6f598262a554372ff80a6258b7c5e347ab96e4d851a9f1",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "tls-http-download",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": "Successfully downloaded file to /Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/downloads/iana-example.html",
|
||||
"metadata": {
|
||||
"url": "https://www.iana.org/help/example-domains",
|
||||
"output_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/downloads/iana-example.html",
|
||||
"file_size_bytes": 6639,
|
||||
"duration_seconds": 3.1630430221557617
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 3.165
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"case": "webpage_reader",
|
||||
"tool": "webpage_reader",
|
||||
"arguments": {
|
||||
"url": "https://example.com",
|
||||
"extract_text": true,
|
||||
"extract_links": true
|
||||
},
|
||||
"arguments_sha256": "8e00a9ee1bbd11c9194efa2e61a4f1d6e01c603ab2a0feed14620c5663a70d8a",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "tls-http-beautifulsoup",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"url": "https://example.com",
|
||||
"title": "Example Domain",
|
||||
"text": "Example DomainExample DomainThis domain is for use in documentation examples without needing permission. Avoid use in operations.Learn more",
|
||||
"text_length": 139,
|
||||
"links": [
|
||||
{
|
||||
"text": "Learn more",
|
||||
"href": "https://iana.org/domains/example"
|
||||
}
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"url": "https://example.com"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 1.576
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"case": "document_reader_pdf",
|
||||
"tool": "document_reader",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.pdf"
|
||||
},
|
||||
"arguments_sha256": "ffdbd5b47a22ff3ca67b25ffa2efb1bb4bcc8d76a5d9ef6257be8ac46f66da6f",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "format-aware-local-parser",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "sample.pdf",
|
||||
"file_type": "pdf",
|
||||
"page_count": 1,
|
||||
"text": "Experiment 4-1 PDF PERCEPTION-EXPERIMENT-4-1-VERIFIED\n\n",
|
||||
"text_length": 55
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.pdf",
|
||||
"file_type": ".pdf"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.003
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"case": "document_reader_docx",
|
||||
"tool": "document_reader",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.docx"
|
||||
},
|
||||
"arguments_sha256": "1fd4d08fd448e8c5b1a601f680c93ba45a972348bb2d63e2787314e9e47e4da9",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "format-aware-local-parser",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "sample.docx",
|
||||
"file_type": "docx",
|
||||
"paragraph_count": 2,
|
||||
"text": "Experiment 4-1 DOCX\nPERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"text_length": 54
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.docx",
|
||||
"file_type": ".docx"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.01
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"case": "document_reader_pptx",
|
||||
"tool": "document_reader",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.pptx"
|
||||
},
|
||||
"arguments_sha256": "0782c7eea687c42ddb1fa7b163dae33ccf66f7a0a4434bc68a038e77be143c72",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "format-aware-local-parser",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "sample.pptx",
|
||||
"file_type": "pptx",
|
||||
"slide_count": 1,
|
||||
"text": "Experiment 4-1 PPTX\nPERCEPTION-EXPERIMENT-4-1-VERIFIED\n",
|
||||
"text_length": 55
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/documents/sample.pptx",
|
||||
"file_type": ".pptx"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.008
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"case": "image_ocr",
|
||||
"tool": "image_ocr",
|
||||
"arguments": {
|
||||
"image_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/ocr-source.png",
|
||||
"language": "eng"
|
||||
},
|
||||
"arguments_sha256": "a14725eb7b36a4db39a0e9ad841a32b96c50d0f6a12c2fa87ea1f8fe50b68669",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-tesseract-ocr",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "ocr-source.png",
|
||||
"image_size": [
|
||||
1200,
|
||||
360
|
||||
],
|
||||
"extracted_text": "EXPERIMENT 4-1\nPERCEPTION TOOLS VERIFIED\n",
|
||||
"text_length": 41,
|
||||
"word_count": 5,
|
||||
"language": "eng",
|
||||
"method": "pytesseract"
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/ocr-source.png"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.234
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"case": "image_analyze",
|
||||
"tool": "image_analyze",
|
||||
"arguments": {
|
||||
"image_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/ocr-source.png",
|
||||
"prompt": "Read the prominent text and describe the simple image."
|
||||
},
|
||||
"arguments_sha256": "5926223f0cda676b56ff3efee32f5a26d5f79c5017732b9490590c3e4cb6d2db",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "configured-vision-api",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "ai_analysis_error",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "AI image analysis failed: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}",
|
||||
"metadata": {
|
||||
"error_type": "ai_analysis_error"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 4.807
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"case": "audio_transcribe",
|
||||
"tool": "audio_transcribe",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/spoken-marker.aiff",
|
||||
"model_size": "tiny",
|
||||
"language": "en"
|
||||
},
|
||||
"arguments_sha256": "5fb61c195b9474cd3ebba4d40dc5b94ff1e2739c0a8d2b95696f598e85e40c03",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-whisper-or-openai",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "spoken-marker.aiff",
|
||||
"file_type": ".aiff",
|
||||
"model": "tiny",
|
||||
"language": "en",
|
||||
"transcription": " Experiment 4-1, Perception Tools Verified",
|
||||
"word_count": 5
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/spoken-marker.aiff"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 3.641
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"case": "video_parser",
|
||||
"tool": "video_parser",
|
||||
"arguments": {
|
||||
"video_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/visual-marker.mp4",
|
||||
"extract_frames": false
|
||||
},
|
||||
"arguments_sha256": "2e684aa70b7b2e7f607eaecd4ebe720c0024bca4f2a7d2532574e181c1bb11ed",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-opencv",
|
||||
"origin": "local-process"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_name": "visual-marker.mp4",
|
||||
"duration_seconds": 1.6666666666666667,
|
||||
"fps": 3.0,
|
||||
"frame_count": 5,
|
||||
"resolution": "1200x360",
|
||||
"width": 1200,
|
||||
"height": 360
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/visual-marker.mp4"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.008
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"case": "video_analyze",
|
||||
"tool": "video_analyze",
|
||||
"arguments": {
|
||||
"video_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/media/visual-marker.mp4",
|
||||
"num_frames": 1,
|
||||
"prompt": "Read the text shown in this frame."
|
||||
},
|
||||
"arguments_sha256": "4af8da761e5413e4fbafe1d24b61848b1ae0208d845fcf30dc6d161debae3d5e",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "opencv-and-configured-vision-api",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "video_analysis_error",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Video analysis failed: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}",
|
||||
"metadata": {
|
||||
"error_type": "video_analysis_error"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 4.952
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"case": "file_reader",
|
||||
"tool": "file_reader",
|
||||
"arguments": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge/mcp-notes.md",
|
||||
"max_length": 2000
|
||||
},
|
||||
"arguments_sha256": "db6ff0ab24cd2a30d7b93839641e6b8e776c66021834393f0e0274bef2e42b0f",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-filesystem",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge/mcp-notes.md",
|
||||
"content": "# Experiment 4-1\n\nPERCEPTION-EXPERIMENT-4-1-VERIFIED\nThe Model Context Protocol connects agents to perception tools.\n",
|
||||
"size_bytes": 117,
|
||||
"truncated": false,
|
||||
"encoding": "utf-8"
|
||||
},
|
||||
"metadata": {
|
||||
"file_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge/mcp-notes.md"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.003
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"case": "grep",
|
||||
"tool": "grep",
|
||||
"arguments": {
|
||||
"pattern": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"directory": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge",
|
||||
"file_pattern": "*.md",
|
||||
"max_results": 10
|
||||
},
|
||||
"arguments_sha256": "6c84ec5e811ee8180a5dac8ced4cae2356559c1d6d9e54cf01fd9dd13f496f47",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-regex-filesystem-search",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"pattern": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"results": [
|
||||
{
|
||||
"file": "mcp-notes.md",
|
||||
"line_number": 3,
|
||||
"line": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"absolute_path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge/mcp-notes.md"
|
||||
}
|
||||
],
|
||||
"total_found": 1,
|
||||
"truncated": false
|
||||
},
|
||||
"metadata": {
|
||||
"directory": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/knowledge",
|
||||
"file_pattern": "*.md",
|
||||
"recursive": true
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.003
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"case": "directory_list",
|
||||
"tool": "directory_list",
|
||||
"arguments": {
|
||||
"query": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/mutation_workspace",
|
||||
"options_json": "{\"limit\": 20}"
|
||||
},
|
||||
"arguments_sha256": "6b2ff6d73716e55b10dbf06b950ed86d97f985f24afdfb123aedaf30f6f37bfe",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "local-filesystem",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"tool": "directory_list",
|
||||
"backend": "filesystem",
|
||||
"data": [
|
||||
{
|
||||
"name": "escape-link",
|
||||
"type": "file",
|
||||
"size": 28
|
||||
},
|
||||
{
|
||||
"name": "nested",
|
||||
"type": "directory",
|
||||
"size": 96
|
||||
},
|
||||
{
|
||||
"name": "seed.txt",
|
||||
"type": "file",
|
||||
"size": 35
|
||||
}
|
||||
]
|
||||
},
|
||||
"elapsed_seconds": 0.004
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"case": "filesystem_copy",
|
||||
"tool": "filesystem_copy",
|
||||
"arguments": {
|
||||
"source_path": "seed.txt",
|
||||
"destination_path": "copied.txt"
|
||||
},
|
||||
"arguments_sha256": "04e57c23d7913d6e4f1076b79fd13ebe887fd4387d676d6a058e4eb81f38633e",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-copy",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"operation": "copy",
|
||||
"source": "seed.txt",
|
||||
"destination": "copied.txt",
|
||||
"source_exists_after": true,
|
||||
"destination_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"replaced_path_quarantine": null
|
||||
},
|
||||
"metadata": {
|
||||
"mutation_root": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/mutation_workspace",
|
||||
"pre_operation_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"verification": "source retained and destination fingerprint matches"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.003
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"case": "filesystem_move",
|
||||
"tool": "filesystem_move",
|
||||
"arguments": {
|
||||
"source_path": "copied.txt",
|
||||
"destination_path": "moved.txt"
|
||||
},
|
||||
"arguments_sha256": "57260877dce1942e47de6c09e86bf0e2c74aac0f83d2eb41ef4f2abd7f16638e",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-rename",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"operation": "move",
|
||||
"source": "copied.txt",
|
||||
"destination": "moved.txt",
|
||||
"source_exists_after": false,
|
||||
"destination_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"replaced_path_quarantine": null
|
||||
},
|
||||
"metadata": {
|
||||
"mutation_root": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/mutation_workspace",
|
||||
"pre_operation_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"verification": "source absent and destination fingerprint matches"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.003
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"case": "filesystem_delete",
|
||||
"tool": "filesystem_delete",
|
||||
"arguments": {
|
||||
"path": "moved.txt"
|
||||
},
|
||||
"arguments_sha256": "05ca93abb4caf2ca737949e5e7829d839c513edbfad1e44f00b95b3ce49fc1bd",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-quarantine",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"operation": "delete",
|
||||
"path": "moved.txt",
|
||||
"path_exists_after": false,
|
||||
"quarantine_path": ".perception-trash/20260729T214745523769Z-b72462a9b8e34102ae970d2336ccd557-moved.txt",
|
||||
"reversible": true,
|
||||
"quarantine_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
}
|
||||
},
|
||||
"metadata": {
|
||||
"mutation_root": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_20260729T214721Z/fixtures/mutation_workspace",
|
||||
"pre_operation_fingerprint": {
|
||||
"kind": "file",
|
||||
"sha256": "e088e8ab3d0dd13410c3b99f54f88aa805ad66d63294dd27f987722ede86f9fc",
|
||||
"bytes": 35,
|
||||
"entries": 1
|
||||
},
|
||||
"verification": "original path absent and quarantine fingerprint matches"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.004
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"case": "reject_parent_traversal",
|
||||
"tool": "filesystem_copy",
|
||||
"arguments": {
|
||||
"source_path": "seed.txt",
|
||||
"destination_path": "../escaped.txt"
|
||||
},
|
||||
"arguments_sha256": "f30b8515b7a09f4b2e769eb600c8dc378524249cc9d6bb311673a20d1b74d6f2",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-copy",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "PermissionError",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Filesystem copy failed: Parent traversal is not allowed for filesystem mutations",
|
||||
"metadata": {
|
||||
"operation": "copy",
|
||||
"error_type": "PermissionError",
|
||||
"mutation_root_env": "PERCEPTION_MUTATION_ROOT"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"case": "reject_absolute_path",
|
||||
"tool": "filesystem_delete",
|
||||
"arguments": {
|
||||
"path": "/tmp"
|
||||
},
|
||||
"arguments_sha256": "ef28a75876b54cb665beeb4cb10d72f463c59d196f5ee4a08e62ac67e7247639",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-quarantine",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "PermissionError",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Filesystem delete failed: Absolute paths are not allowed for filesystem mutations",
|
||||
"metadata": {
|
||||
"operation": "delete",
|
||||
"error_type": "PermissionError",
|
||||
"mutation_root_env": "PERCEPTION_MUTATION_ROOT"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"case": "reject_escaping_symlink",
|
||||
"tool": "filesystem_delete",
|
||||
"arguments": {
|
||||
"path": "escape-link"
|
||||
},
|
||||
"arguments_sha256": "0cda34db2d162698b7076bdf382db85514c3506df0f19278a094153ec55e3fe2",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "workspace-confined-quarantine",
|
||||
"origin": "local-filesystem"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "PermissionError",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Filesystem delete failed: Resolved path escapes the configured mutation root",
|
||||
"metadata": {
|
||||
"operation": "delete",
|
||||
"error_type": "PermissionError",
|
||||
"mutation_root_env": "PERCEPTION_MUTATION_ROOT"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.002
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"case": "weather",
|
||||
"tool": "weather",
|
||||
"arguments": {
|
||||
"location": "Singapore"
|
||||
},
|
||||
"arguments_sha256": "6b05a9aa723d910bd7a8a6b4579e099e8fcbb826fac7ee89cd347f9c274ce035",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "open-meteo",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"location": "Singapore",
|
||||
"country": "Singapore",
|
||||
"latitude": 1.28967,
|
||||
"longitude": 103.85007,
|
||||
"temperature": 26.3,
|
||||
"feels_like": 31.3,
|
||||
"humidity": 87,
|
||||
"precipitation": 0.0,
|
||||
"weather_code": 3,
|
||||
"description": "Overcast",
|
||||
"wind_speed": 7.0,
|
||||
"wind_direction": 167,
|
||||
"units": "metric",
|
||||
"timestamp": "2026-07-30T05:45",
|
||||
"provider": "Open-Meteo"
|
||||
},
|
||||
"metadata": {
|
||||
"location": "Singapore",
|
||||
"provider": "Open-Meteo",
|
||||
"api_key_required": false
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 4.541
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"case": "yfinance_quote",
|
||||
"tool": "yfinance_quote",
|
||||
"arguments": {
|
||||
"symbol": "AAPL"
|
||||
},
|
||||
"arguments_sha256": "81c8d84ddf020b1584fa351351da6f46b756261e048fe93502b5f5c3fdc1e526",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "yahoo-finance-yfinance",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"symbol": "AAPL",
|
||||
"company_name": "Apple Inc.",
|
||||
"current_price": 338.19,
|
||||
"previous_close": 340.08,
|
||||
"open": 339.69,
|
||||
"day_high": 344.5699,
|
||||
"day_low": 337.3501,
|
||||
"volume": 48852885,
|
||||
"average_volume": 55895206,
|
||||
"market_cap": 4967117094912,
|
||||
"fifty_two_week_high": 344.5699,
|
||||
"fifty_two_week_low": 201.5,
|
||||
"currency": "USD",
|
||||
"exchange": "NMS",
|
||||
"change": -1.89,
|
||||
"change_percent": -0.56
|
||||
},
|
||||
"metadata": {
|
||||
"symbol": "AAPL",
|
||||
"operation": "get_stock_quote",
|
||||
"execution_time": 4.013011932373047,
|
||||
"data_points": 16,
|
||||
"error_type": null,
|
||||
"timestamp": "2026-07-30T05:47:54.088150"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 4.016
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"case": "currency_converter",
|
||||
"tool": "currency_converter",
|
||||
"arguments": {
|
||||
"amount": 10,
|
||||
"from_currency": "USD",
|
||||
"to_currency": "SGD"
|
||||
},
|
||||
"arguments_sha256": "8e2c229a505df791071d022f2070870bc3da118c47b105afe6d7ced02fbed2d2",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "live-exchange-rate-api",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"amount": 10.0,
|
||||
"from_currency": "USD",
|
||||
"to_currency": "SGD",
|
||||
"exchange_rate": 1.29,
|
||||
"converted_amount": 12.9,
|
||||
"timestamp": "2026-07-29"
|
||||
},
|
||||
"metadata": {
|
||||
"rate": 1.29
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 1.64
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"case": "wikipedia_search",
|
||||
"tool": "wikipedia_search",
|
||||
"arguments": {
|
||||
"query": "Model Context Protocol",
|
||||
"language": "en",
|
||||
"sentences": 3
|
||||
},
|
||||
"arguments_sha256": "697f2deabfb52773a614f77f31c5e61400afcc7b42b4ba0a282fc2d5b488d9df",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "mediawiki",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"title": "Model Context Protocol",
|
||||
"url": "https://en.wikipedia.org/wiki/Model_Context_Protocol",
|
||||
"summary": "The Model Context Protocol (MCP) is an open standard and open-source framework introduced by Anthropic in November 2024 to standardize the way artificial intelligence (AI) systems like large language models (LLMs) integrate and share data with external tools, systems, and data sources. MCP provides a standardized interface for reading files, executing functions, and handling contextual prompts. Following its announcement, the protocol was adopted by major AI providers, including OpenAI and Google DeepMind.",
|
||||
"language": "en",
|
||||
"search_results": [
|
||||
"Model Context Protocol",
|
||||
"Agent harness",
|
||||
"Anthropic"
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"query": "Model Context Protocol",
|
||||
"language": "en"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 12.083
|
||||
}
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"case": "arxiv_search",
|
||||
"tool": "arxiv_search",
|
||||
"arguments": {
|
||||
"query": "agentic artificial intelligence",
|
||||
"max_results": 2,
|
||||
"sort_by": "relevance"
|
||||
},
|
||||
"arguments_sha256": "7c091475ba1290dac931ea59515b34385cafe55fcafc0018f292c7d05d7152c1",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": true,
|
||||
"substantive_observation": true,
|
||||
"backend_provenance": {
|
||||
"backend": "export.arxiv.org",
|
||||
"origin": "live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": null,
|
||||
"payload": {
|
||||
"success": true,
|
||||
"message": {
|
||||
"query": "agentic artificial intelligence",
|
||||
"papers": [
|
||||
{
|
||||
"title": "Creative Problem Solving in Artificially Intelligent Agents: A Survey and Framework",
|
||||
"authors": [
|
||||
"Evana Gizzi",
|
||||
"Lakshmi Nair",
|
||||
"Sonia Chernova",
|
||||
"Jivko Sinapov"
|
||||
],
|
||||
"summary": "Creative Problem Solving (CPS) is a sub-area within Artificial Intelligence (AI) that focuses on methods for solving off-nominal, or anomalous problems in autonomous systems. Despite many advancements in planning and learning, resolving novel problems or adapting existing knowledge to a new context, especially in cases where the environment may change in unpredictable ways post deployment, remains a limiting factor in the safe and useful integration of intelligent systems. The emergence of incre...",
|
||||
"published": "2022-04-21T18:31:44+00:00",
|
||||
"url": "http://arxiv.org/abs/2204.10358v1",
|
||||
"pdf_url": "https://arxiv.org/pdf/2204.10358v1",
|
||||
"categories": [
|
||||
"cs.AI"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "The Artificial Scientist: Logicist, Emergentist, and Universalist Approaches to Artificial General Intelligence",
|
||||
"authors": [
|
||||
"Michael Timothy Bennett",
|
||||
"Yoshihiro Maruyama"
|
||||
],
|
||||
"summary": "We attempt to define what is necessary to construct an Artificial Scientist, explore and evaluate several approaches to artificial general intelligence (AGI) which may facilitate this, conclude that a unified or hybrid approach is necessary and explore two theories that satisfy this requirement to some degree....",
|
||||
"published": "2021-10-05T05:58:23+00:00",
|
||||
"url": "http://arxiv.org/abs/2110.01831v1",
|
||||
"pdf_url": "https://arxiv.org/pdf/2110.01831v1",
|
||||
"categories": [
|
||||
"cs.AI"
|
||||
]
|
||||
}
|
||||
],
|
||||
"count": 2
|
||||
},
|
||||
"metadata": {
|
||||
"query": "agentic artificial intelligence",
|
||||
"max_results": 2
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 2.311
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"case": "calendar_events",
|
||||
"tool": "calendar_events",
|
||||
"arguments": {
|
||||
"calendar_id": "primary",
|
||||
"max_results": 5
|
||||
},
|
||||
"arguments_sha256": "339afbf08769281fb4ed269e3d46da2d8e0d5eff86f0d4a6d36c0159414d7c7a",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "google-calendar-api",
|
||||
"origin": "private-live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "missing_credentials",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Google Calendar not configured. Please run setup to authenticate.",
|
||||
"metadata": {
|
||||
"error_type": "missing_credentials"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.05
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"case": "notion_search",
|
||||
"tool": "notion_search",
|
||||
"arguments": {
|
||||
"query": "Experiment 4-1",
|
||||
"page_size": 5
|
||||
},
|
||||
"arguments_sha256": "e5936e03cd7f40be1aa784beffd8a2c41a47d67dc53174b65aba9e6766784807",
|
||||
"transport": "mcp-stdio",
|
||||
"mcp_result_is_error": false,
|
||||
"success": false,
|
||||
"substantive_observation": false,
|
||||
"backend_provenance": {
|
||||
"backend": "notion-api",
|
||||
"origin": "private-live-api"
|
||||
},
|
||||
"simulation_markers": [],
|
||||
"error_type": "missing_credentials",
|
||||
"payload": {
|
||||
"success": false,
|
||||
"message": "Notion API key not configured. Set NOTION_API_KEY.",
|
||||
"metadata": {
|
||||
"error_type": "missing_credentials"
|
||||
}
|
||||
},
|
||||
"elapsed_seconds": 0.005
|
||||
}
|
||||
+145
@@ -0,0 +1,145 @@
|
||||
{
|
||||
"experiment": "4-1",
|
||||
"campaign_id": "real_mcp_20260729T214721Z",
|
||||
"status": "blocked",
|
||||
"acceptance": {
|
||||
"status": "blocked",
|
||||
"gates": {
|
||||
"catalog_from_real_mcp": true,
|
||||
"catalog_contains_all_required_tools": true,
|
||||
"search_category_passed": true,
|
||||
"multimodal_category_passed": false,
|
||||
"filesystem_category_passed": true,
|
||||
"public_data_category_passed": true,
|
||||
"private_data_category_passed": false,
|
||||
"filesystem_pre_post_hashes_verified": true,
|
||||
"filesystem_isolation_probes_rejected": true,
|
||||
"all_successes_substantive_and_non_simulated": true,
|
||||
"exact_case_set_recorded": true
|
||||
},
|
||||
"categories": {
|
||||
"search": {
|
||||
"status": "passed",
|
||||
"required_cases": [
|
||||
"web_search",
|
||||
"knowledge_base_search",
|
||||
"download"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": []
|
||||
},
|
||||
"multimodal": {
|
||||
"status": "blocked",
|
||||
"required_cases": [
|
||||
"webpage_reader",
|
||||
"document_reader_pdf",
|
||||
"document_reader_docx",
|
||||
"document_reader_pptx",
|
||||
"image_ocr",
|
||||
"image_analyze",
|
||||
"audio_transcribe",
|
||||
"video_parser",
|
||||
"video_analyze"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": [
|
||||
"image_analyze",
|
||||
"video_analyze"
|
||||
]
|
||||
},
|
||||
"filesystem": {
|
||||
"status": "passed",
|
||||
"required_cases": [
|
||||
"file_reader",
|
||||
"grep",
|
||||
"directory_list",
|
||||
"filesystem_copy",
|
||||
"filesystem_move",
|
||||
"filesystem_delete"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": []
|
||||
},
|
||||
"public_data": {
|
||||
"status": "passed",
|
||||
"required_cases": [
|
||||
"weather",
|
||||
"yfinance_quote",
|
||||
"currency_converter",
|
||||
"wikipedia_search",
|
||||
"arxiv_search"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": []
|
||||
},
|
||||
"private_data": {
|
||||
"status": "blocked",
|
||||
"required_cases": [
|
||||
"calendar_events",
|
||||
"notion_search"
|
||||
],
|
||||
"missing_cases": [],
|
||||
"invalid_cases": [
|
||||
"calendar_events",
|
||||
"notion_search"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"receipt_count": 28,
|
||||
"successful_cases": [
|
||||
"web_search",
|
||||
"knowledge_base_search",
|
||||
"download",
|
||||
"webpage_reader",
|
||||
"document_reader_pdf",
|
||||
"document_reader_docx",
|
||||
"document_reader_pptx",
|
||||
"image_ocr",
|
||||
"audio_transcribe",
|
||||
"video_parser",
|
||||
"file_reader",
|
||||
"grep",
|
||||
"directory_list",
|
||||
"filesystem_copy",
|
||||
"filesystem_move",
|
||||
"filesystem_delete",
|
||||
"weather",
|
||||
"yfinance_quote",
|
||||
"currency_converter",
|
||||
"wikipedia_search",
|
||||
"arxiv_search"
|
||||
],
|
||||
"failed_or_blocked_cases": [
|
||||
"image_analyze",
|
||||
"video_analyze",
|
||||
"reject_parent_traversal",
|
||||
"reject_absolute_path",
|
||||
"reject_escaping_symlink",
|
||||
"calendar_events",
|
||||
"notion_search"
|
||||
],
|
||||
"outside_witness_unchanged": true,
|
||||
"credential_preflight": {
|
||||
"secret_values_recorded": false,
|
||||
"google_calendar": {
|
||||
"token_file_exists": false,
|
||||
"token_file_bytes": 0,
|
||||
"oauth_credentials_sdk_importable": true,
|
||||
"calendar_sdk_importable": true
|
||||
},
|
||||
"notion": {
|
||||
"api_key_present": false,
|
||||
"sdk_importable": true
|
||||
},
|
||||
"multimodal": {
|
||||
"openai_key_present": true,
|
||||
"openrouter_key_present": true,
|
||||
"local_whisper_importable": true,
|
||||
"pytesseract_importable": true,
|
||||
"tesseract_executable_present": true,
|
||||
"ffmpeg_executable_present": true
|
||||
}
|
||||
},
|
||||
"generated_at": "2026-07-29T21:48:10.848716+00:00"
|
||||
}
|
||||
+3793
File diff suppressed because it is too large
Load Diff
+23
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"secret_values_recorded": false,
|
||||
"google_calendar": {
|
||||
"token_file_exists": false,
|
||||
"token_file_bytes": 0,
|
||||
"oauth_credentials_sdk_importable": true,
|
||||
"calendar_sdk_importable": true
|
||||
},
|
||||
"notion": {
|
||||
"api_key_present": false,
|
||||
"sdk_importable": true
|
||||
},
|
||||
"multimodal": {
|
||||
"openai_key_present": true,
|
||||
"openrouter_key_present": true,
|
||||
"gemini_key_present": true,
|
||||
"dashscope_key_present": true,
|
||||
"local_whisper_importable": true,
|
||||
"pytesseract_importable": true,
|
||||
"tesseract_executable_present": true,
|
||||
"ffmpeg_executable_present": true
|
||||
}
|
||||
}
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"marker": "PERCEPTION-EXPERIMENT-4-1-VERIFIED",
|
||||
"paths": {
|
||||
"fixtures": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures",
|
||||
"knowledge": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/knowledge",
|
||||
"note": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/knowledge/mcp-notes.md",
|
||||
"pdf": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/documents/sample.pdf",
|
||||
"docx": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/documents/sample.docx",
|
||||
"pptx": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/documents/sample.pptx",
|
||||
"image": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/media/ocr-source.png",
|
||||
"audio": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/media/spoken-marker.aiff",
|
||||
"video": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/media/visual-marker.mp4",
|
||||
"downloads": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/downloads",
|
||||
"mutation": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/mutation_workspace",
|
||||
"outside_witness": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/outside-witness.txt"
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/knowledge/mcp-notes.md",
|
||||
"bytes": 117,
|
||||
"sha256": "945c0c3c5db50871410a7e3fed03927d5d8756daab542a933ced7a34b38e9bd1"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/documents/sample.pdf",
|
||||
"bytes": 1461,
|
||||
"sha256": "ccc1621eaaaddb453630a099da564f505567d8fe5ddcbe97a3338e71c3d422ab"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/documents/sample.docx",
|
||||
"bytes": 36652,
|
||||
"sha256": "8020a5e7743e41f569d6045205c458a74b674e561e6dad6e665b619995182e93"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/documents/sample.pptx",
|
||||
"bytes": 28277,
|
||||
"sha256": "5b9f2a61ac22b1c21d007aaf5f73b35c167ae29514b44b82dde5f0488f410b4c"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/media/ocr-source.png",
|
||||
"bytes": 15559,
|
||||
"sha256": "c0d7cf1025cdafa6c9da51e0ab021f9a7fc192b874770c30f693c81ade651e6f"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/media/spoken-marker.aiff",
|
||||
"bytes": 160516,
|
||||
"sha256": "8d6b6aca4973239afafe0e42d576b8702f5fc6c008907dc75247923adfd0150f"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/media/visual-marker.mp4",
|
||||
"bytes": 10089,
|
||||
"sha256": "05ed43bb4e1b34e491bcad877137721ccbdbbd5a6c4b6ee0483b20176484ef99"
|
||||
},
|
||||
{
|
||||
"path": "/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/outside-witness.txt",
|
||||
"bytes": 28,
|
||||
"sha256": "59049c8e49e561bbe617bd612757e0c83d5623857aeb123338d573e01b4c9120"
|
||||
}
|
||||
],
|
||||
"generators": {
|
||||
"say": {
|
||||
"executable": "say",
|
||||
"arguments": [
|
||||
"-v",
|
||||
"Samantha",
|
||||
"-r",
|
||||
"150",
|
||||
"-o",
|
||||
"/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/media/spoken-marker.aiff",
|
||||
"Experiment four one. Perception tools verified."
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"elapsed_seconds": 1.103
|
||||
},
|
||||
"ffmpeg": {
|
||||
"executable": "ffmpeg",
|
||||
"arguments": [
|
||||
"-y",
|
||||
"-loglevel",
|
||||
"error",
|
||||
"-loop",
|
||||
"1",
|
||||
"-i",
|
||||
"/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/media/ocr-source.png",
|
||||
"-t",
|
||||
"1.5",
|
||||
"-r",
|
||||
"3",
|
||||
"-pix_fmt",
|
||||
"yuv420p",
|
||||
"/Users/boj/book/ai-agent-book/chapter4/perception-tools/validation/experiment_4_1/real_mcp_dashscope_20260730T061500Z/fixtures/media/visual-marker.mp4"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"elapsed_seconds": 0.071
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
Binary file not shown.
+68
@@ -0,0 +1,68 @@
|
||||
%PDF-1.3
|
||||
%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com
|
||||
1 0 obj
|
||||
<<
|
||||
/F1 2 0 R
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/Contents 7 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 6 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/PageMode /UseNone /Pages 6 0 R /Type /Catalog
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/Author (anonymous) /CreationDate (D:20260730061321+08'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20260730061321+08'00') /Producer (ReportLab PDF Library - www.reportlab.com)
|
||||
/Subject (unspecified) /Title (untitled) /Trapped /False
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/Count 1 /Kids [ 3 0 R ] /Type /Pages
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 149
|
||||
>>
|
||||
stream
|
||||
Gap@E_$\%E&4>pbMB#Vum?GTH[Bm*aejY18QPL99V"E$[G:F42]HfmARcNXm%%N,@&4ctb&ARsI$Y<bWr24[kqH/=e)dPYFoZY4"L3J7!"=1[P2)/E`Vg!dGBhrBD],?:#bnb\X]CcoX(I=l=4T~>endstream
|
||||
endobj
|
||||
xref
|
||||
0 8
|
||||
0000000000 65535 f
|
||||
0000000073 00000 n
|
||||
0000000104 00000 n
|
||||
0000000211 00000 n
|
||||
0000000414 00000 n
|
||||
0000000482 00000 n
|
||||
0000000778 00000 n
|
||||
0000000837 00000 n
|
||||
trailer
|
||||
<<
|
||||
/ID
|
||||
[<20061be11c9793024e7daeaebf9ee879><20061be11c9793024e7daeaebf9ee879>]
|
||||
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
|
||||
|
||||
/Info 5 0 R
|
||||
/Root 4 0 R
|
||||
/Size 8
|
||||
>>
|
||||
startxref
|
||||
1076
|
||||
%%EOF
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user